我在mongoDB中有一个字段,比如birth_date
,它是ISODate格式,如
ISODate("2013-08-15T23:00:00Z")
在php中,我以字符串格式获取日期
"2013-08-10"
我想要birth_date
大于2013-08-10
为此,我有一个代码
$inputDate = "2013-08-10";
$dateFilter = array("\$gte",$inputDate); //works well when birth_date field is normat date string like "2013-08-16" but doesn't work with ISODate format as above
$dateRangeQuery = array("birth_date" => $dateFilter);
生成未正确过滤数据的查询{"birth_date":{"$gte":"2013-08-10"}}
。
以下代码段也无法正常工作
$dateFilter = array("\$gte",date("c", $inputDate));
生成查询
{"birth_date":{"$gte":"2013-08-10T00:00:00+05:30"}}
然后这也没有用
$dateFilter = new MongoDate($inputDate)
生成查询
{"birth_date":{"$gte":{"sec":2013,"usec":0}}}
请建议:)
答案 0 :(得分:8)
正确的方法是在
中使用strtotime
$dateFilter = new MongoDate(strtotime($inputDate))
答案 1 :(得分:0)
另一种解决方案是创建mongoDate
,只需创建DateTime
对象并使用DateTime
对象获取时间戳,然后通过{{创建MongoDate
对象1}}
timestamp