【问题标题】:Compare BST date with UTC + 1 date将 BST 日期与 UTC + 1 日期进行比较
【发布时间】: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

标签: php date datetime


【解决方案1】:

旧版日期函数并不特别适用于包含时区信息的日期数学。如果你使用对象,这相当简单:

$date = new DateTime('2016-02-12 19:30:00 BST');
if ($date>=new DateTime) {
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多