Symfony2のクエリ入力時間の詳細説明

零下一度
リリース: 2023-03-12 12:00:02
オリジナル
1095 人が閲覧しました

この記事では、主に Symfony2 が入力時間をクエリする方法を紹介し、mysql と MongoDB の入力時間を変換およびクエリするための Symfony2 の関連操作スキルを例の形式で分析します。この記事

Symfony2 で入力時間をクエリする方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです:

一般: フロントエンドが時刻を入力するとき、通常、時刻を timestamp

strtotime - 日付と時刻を記述します。あらゆる英語テキストを Unix タイムスタンプに解析します

例:


$startTimestamp = strtotime($startDate);
$endTimestamp = strtotime($endDate);
ログイン後にコピー

Then: 時間だけの場合、他人が通過した時間が改ざんされるのを防ぐために、時間を次の形式に変更する必要があります。 Y-m-d


$start = date('Y-m-d 00:00:00', $startTimestamp);
$end = date('Y-m-d 23:59:59', $endTimestamp);
ログイン後にコピー

1. MySQL での使用


if(empty($startDate)) {
  throw new \Exception('起始时间不为空', BaseException::ERROR_CODE_ILLEGAL_PARAMETER);
}
if (empty($endDate)) {
  $endDate = $startDate;
}
$startTimestamp = strtotime($startDate);
$endTimestamp = strtotime($endDate);
if ($startTimestamp > $endTimestamp) {
  throw new \Exception('时间参数错误', BaseException::ERROR_CODE_ILLEGAL_PARAMETER);
}
if ($status == InventoryOrder::STATUS_SUBMITTED) {
  $index = 'i.submitTime';
} else if ($status == InventoryOrder::STATUS_UNSUBMITTED) {
  $index = 'i.createTime';
} else if (empty($status)) {
  $index = 'i.createTime';
} else {
  throw new \Exception('时间格式不正确', BaseException::ERROR_CODE_ILLEGAL_PARAMETER);
}
$sql = 'SELECT i FROM AppBundle:InventoryOrder i WHERE ';
$sql .= $index;
$sql .= ' BETWEEN :startDate AND :endDate ';
$start = date('Y-m-d 00:00:00', $startTimestamp);
$end = date('Y-m-d 23:59:59', $endTimestamp);
$params['endDate'] = $end;
$params['startDate'] = $start;
if (!empty($status)) {
  $sql .= ' AND i.status = :status';
  $params['status'] = $status;
}
$sql .=' ORDER By i.createTime DESC';
$query = $this->entityManager->createQuery($sql);
$orderList = $query->setParameters($params)->getResult();
ログイン後にコピー

2. mongodb での時間入力とクエリの例

これには、実際には 2 つの落とし穴があります。

えー

ここで、時間クエリがより大きい場合とより小さい場合は、オブジェクトを渡す必要があります。


@ ->field('submit_time')->gt(new \DateTime($start))
->field('submit_time')->lt(new \DateTime($end))
ログイン後にコピー
ここで、mongodb は、デフォルトではこれが int 型であることを識別するのに役立ちません。それがどのような型であるかは、手動で渡す必要があります。


りー

以上がSymfony2のクエリ入力時間の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!