【问题标题】:PHP date ISO 8601 date TimezonePHP 日期 ISO 8601 日期 时区
【发布时间】:2015-05-22 07:28:25
【问题描述】:

我从支付网关返回了这个日期

2014-05-15T08:40:52+01:00

我得到了 2014-05-15T08:40:52 但我无法识别时区的含义+01:00

我所在的时区是 UTC−06:00 (CT)

服务器所在时区为 UTC-02:00

我的支付网关时区 UTC-05:00 (EST)

+01:00 添加/未添加到我的时区后的含义是什么?我如何告诉我的网站用户他/她在 XX 日期和时间成功完成了付款流程...

【问题讨论】:

  • +01:00 表示偏离 UTC。

标签: php mysql date datetime


【解决方案1】:

ISO 8601 Specs

格式如下。此处显示的组件必须是 现在,正是这个标点符号。注意出现“T” 从字面上看,在字符串中,表示时间的开始 元素,如 ISO 8601 中所述。

   Year:
      YYYY (eg 1997)
   Year and month:
      YYYY-MM (eg 1997-07)
   Complete date:
      YYYY-MM-DD (eg 1997-07-16)
   Complete date plus hours and minutes:
      YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
   Complete date plus hours, minutes and seconds:
      YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
   Complete date plus hours, minutes, seconds and a decimal fraction of a second
      YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)

地点:

     YYYY = four-digit year
     MM   = two-digit month (01=January, etc.)
     DD   = two-digit day of month (01 through 31)
     hh   = two digits of hour (00 through 23) (am/pm NOT allowed)
     mm   = two digits of minute (00 through 59)
     ss   = two digits of second (00 through 59)
     s    = one or more digits representing a decimal fraction of a second
     TZD  = time zone designator (Z or +hh:mm or -hh:mm)

此配置文件定义了两种处理时区偏移的方法:

1.时间以 UTC(协调世界时)表示,带有一个特殊的 UTC 指示符(“Z”)。

2.时间以本地时间表示,时区偏移以小时和分钟表示。

“+hh:mm”的时区偏移表示 日期/时间使用本地时区,即“hh”小时和“mm” 比 UTC 早几分钟。

“-hh:mm”的时区偏移表示 日期/时间使用本地时区,即“hh”小时和“mm” 比 UTC 晚几分钟。

本节回答您的问题

“+hh:mm”的时区偏移表示日期/时间使用的本地时区比 UTC 早“hh”小时和“mm”分钟。

TL;DR

您看到的日期在 UTC 前 1 小时的时区中,无论您的服务器是什么时间,支付网关是什么时间。它确实返回的时间比世界任何地方和任何时区的 UTC 早 1 小时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-23
    • 2013-05-14
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多