【发布时间】:2016-02-09 02:00:32
【问题描述】:
我有一个字符串日期,例如:2016-02-12 19:30:00
此日期在BST 时区,我需要将此日期与今天的日期进行比较。我是法国人,所以它是UTC + 1。
解决办法是什么?如果我在 BST 日期上增加一小时,是否正确?我需要转换BST to UTC + 1,还是UTC + 1 to BST?
现在我检索今天像:$today = date("Y-m-d H:i:s");,我比较我的两个日期像:
if(date('Y-m-d H:i:s', strtotime($myBstDate)) >= $today)
对我来说这是错误的,有一个小时的偏移量。
正确的方法是什么?谢谢!
【问题讨论】:
-
始终尝试将所有内容都转换为 UTC,然后使用它并在需要时转换回来。还有什么问题?
$today的定义时间与$myBstDate不同?预期的结果是什么? -
因为 BST 日期为 2016-02-12 19:30:00,对我来说不是 19:30:00 而是 20:30:00
-
我建议你坚持
gmdate,这样你就可以保持格林威治标准时间了。让生活更轻松。 php.net/manual/en/function.gmdate.php 也不要害怕使用 setTimeZone 方法:php.net/manual/en/datetime.settimezone.php