我正在使用Symfony和MongoDB。
我如何确定mongo存储正确的日期? 我在MongoDB中使用了BSON类型的Date(9)
答案 0 :(得分:1)
Doctrine将以ISO 8601格式存储DateTimes。
考虑到存储的时间,这意味着您的PHP时区比UTC早2小时,因此1985年9月17日到1985年9月16日晚上10点。最后的Z
表示时区,即UTC。
当您从Mongo获得日期时间值时,应该将其转换回1985年9月17日午夜。
可能有一种方法可以将日期时间值存储在Mongo中,如1985-09-17T00:00:00.000 + 02:00
答案 1 :(得分:0)
通过在文档设置器中将DateTime对象显式设置为午夜和右时区,MongoDb将其存储为" ... 22:00:00.000Z"而不是" ... 23:00:00.000Z"。
/**
* Set dateOfBirth
*
* @param Date $dateOfBirth
* @return self
*/
public function setDateOfBirth($dateOfBirth)
{
$this->dateOfBirth = $dateOfBirth->modify('midnight')->setTimezone(new \DateTimeZone('Europe/Brussels'));
return $this;
}