我需要在mysql中存储日期(没有时间)。用户在输入框中输入日期,如yyyy-mm-dd,可能会在以后的时间内改变。 你能告诉我什么是在mongodb存储日期的好方法(没有时间),我们在mysql中使用DATE类型?现在,当我需要存储日期和时间时,我使用mongdb日期类型。 并存储如下:
$data['ADDED'] = new MongoDate(time());
并显示它们:
echo gmdate('Y-m-d H:i:s', $data['ADDED']->sec);
当我只使用日期时,我将它们存储为字符串:yyyy-mm-dd(我在存储它之前验证日期以确保它是正确的日期)。我需要按日期找到这样的东西:
dateField <(>) somedate
您认为将日期存储为mongodb中的字符串是否可以接受?你通常如何在mongodb中存储日期?
答案 0 :(得分:2)
MongoDB没有DATE类型。它改为ISODate
类型。这对于存储“没有”时间同样适合我解释。
所以你可以这样使用MongoDate
:
$date = new MongoDate(); // Denotes today, just like the date() function
现在没有时间存储你可以通过让PHP只设置一个日期来伪造它,因此默认时间将是00:00:00
(我应该注意这意味着时间实际上就像{{1一样存储}}):
00:00:00
然后您可以只按日期部分查询:
$date = new MongoDate(strtotime('2012-04-23')); // strtotime for fun
现在您可以查询,好像您没有时间,因为时间将等于您放入的内容:find(array('date' => new MongoDate(strtotime('2012-04-23'))));
。
当然这只是修复它的一种方法。