mongodb 日期与给定值不匹配
mongodb date not matching with the given value
在将数据插入 mongodb 集合时,我将日期输入为“20-06-2015”
然后使用
将其转换为 mongo 格式
new MongoDate(strtotime(ClearContent(date("Y-m-d",strtotime($start_date)))));
但是现在当我检查数据库时它显示:
ISODate("2015-04-19T18:30:00.000Z")
为什么取昨天的日期
mongodb 中的日期以 UTC 格式存储,可能您在 PHP
中使用了不同的时区
尝试在 PHP 脚本的开头设置此项以使用 UTC 时区:
date_default_timezone_set('UTC');
试试这个...
$dat = new DateTime(date("Y-m-d",strtotime($start_date)), new DateTimeZone('UTC'));
$get = $dat->getTimestamp();
$date= new MongoDate($get);
这会起作用。
$d = new \MongoDate();
$mongodate = date('Y-m-d H:i:s', $d->sec);
date_default_timezone_set("Asia/Kolkata");
$date = date('Y-m-d H:i:s');
$time = strtotime($date) - strtotime($mongodate);
$mongodate_time = new \MongoDate($d->sec + $time, $d->usec);
在将数据插入 mongodb 集合时,我将日期输入为“20-06-2015” 然后使用
将其转换为 mongo 格式new MongoDate(strtotime(ClearContent(date("Y-m-d",strtotime($start_date)))));
但是现在当我检查数据库时它显示:
ISODate("2015-04-19T18:30:00.000Z")
为什么取昨天的日期
mongodb 中的日期以 UTC 格式存储,可能您在 PHP
中使用了不同的时区尝试在 PHP 脚本的开头设置此项以使用 UTC 时区:
date_default_timezone_set('UTC');
试试这个...
$dat = new DateTime(date("Y-m-d",strtotime($start_date)), new DateTimeZone('UTC'));
$get = $dat->getTimestamp();
$date= new MongoDate($get);
这会起作用。
$d = new \MongoDate();
$mongodate = date('Y-m-d H:i:s', $d->sec);
date_default_timezone_set("Asia/Kolkata");
$date = date('Y-m-d H:i:s');
$time = strtotime($date) - strtotime($mongodate);
$mongodate_time = new \MongoDate($d->sec + $time, $d->usec);