【问题标题】:Datetime format in PHP with MongoDB使用 MongoDB 在 PHP 中使用日期时间格式
【发布时间】:2016-05-04 16:50:10
【问题描述】:

我在过滤来自 MongoDB 的数据时遇到问题,其中文档具有“iso_date”字段,例如

ISODate("2010-08-01T00:00:00Z")

在下面的 .php 文件中,

<?php

$date_a = $_GET['date_a'];
$date_b = $_GET['date_b'];

$m = new MongoClient('mongodb://127.0.0.1:xxxxx');
$db = $m->db;
$collection = $db->collection;

$res  = $collection->find(array(
            'iso_date' => array('$gte' => $date_a, '$lte' => $date_b)
        ));
$m->close();

echo json_encode($res);

?>

其中 date_a 和 date_b 是在 javascript 中创建的。我尝试将字符串“T00:00:00Z”添加到 YYYY-MM-DD 日期,但结果始终为空(我确信它不应该是)。 我该如何解决这个问题?我不想将所有内容都转换为字符串,并保持日期时间格式。

【问题讨论】:

  • 你想要 iso_date 为 '2010-08-01 00:00:00' 吗??

标签: javascript php mongodb datetime format


【解决方案1】:

试试这个:

$collection = $db->collection;

$start =  $_GET['date_a'];
$end = $_GET['date_a'];

// find dates between 1/15/2010 and 1/30/2010
$collection->find(array("iso_date" => array('$gt' => $start, '$lte' => $end)));

【讨论】:

    【解决方案2】:

    您的$date_a$date_b 需要是MongoDate 的实例(因为您使用的是旧版驱动程序chridam 的答案可能不起作用)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 2016-07-14
      • 2015-04-21
      • 2014-03-02
      • 2018-03-28
      • 2013-02-03
      相关资源
      最近更新 更多