在mongodb存储日期

时间:2012-12-18 15:57:51

标签: mongodb mongodb-php

我需要在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中存储日期?

1 个答案:

答案 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'))));

当然这只是修复它的一种方法。