首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP MongoDate/DateTime错误或故障

PHP MongoDate/DateTime错误或故障
EN

Stack Overflow用户
提问于 2015-07-20 14:51:52
回答 1查看 670关注 0票数 1

MongoDate功能有什么问题吗?

当我将一个DateTime对象转换为MongoDate,然后尝试将它转换回DateTime时,我得到了一个完全不同的值。记住,我们说的是在时代范围内的约会。

这里有一个复制这个问题的方法。

代码语言:javascript
复制
$dateTime  = new DateTime( '2015-07-20 10:15:45', new DateTimeZone( 'Europe/London' ) );

$mongoDate = new MongoDate( $dateTime->getTimeStamp() );

echo $mongoDate->sec ."\n"; // 1437383745

echo date( 'Y-m-d H:i:s', $mongoDate->sec ) ."\n"; // 2015-07-20 11:15:45

$dateTime2 = $mongoDate->toDateTime();

echo $dateTime2->format('Y-m-d H:i:s') ."\n"; // 1969-12-15 10:41:40

这种行为正常吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-20 16:30:18

你有时区问题。创建DateTime对象时,可以在Europe/London时区中创建它。但是,当您将秒“转换”回日期时间格式时,您使用的是date()函数,它使用默认时区,这显然与Europe/London不同。

使用DateTime创建$mongoDate->sec对象,然后转换时区。

代码语言:javascript
复制
$dt = new DateTime('@' . $mongoDate->sec);
$dt->setTimezone(new DateTimeZone('Europe/London'));
echo $dt->format('c');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31519627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档