PHP日期ISO 8601日期时区

时间:2015-05-22 07:28:25

标签: php mysql date datetime

我从支付网关

返回此日期
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日期和时间成功完成了付款流程...

1 个答案:

答案 0 :(得分:3)

<强> ISO 8601 Specs

  

格式如下。确切地说,此处显示的组件必须是   目前,正是这个标点符号。注意&#34; T&#34;出现   字面意思是在字符串中,表示时间的开始   元素,如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指示符(&#34; Z&#34;)。

     

2.时间以当地时间表示,以及以小时和分钟为单位的时区偏移。

     

时区偏移量为&#34; + hh:mm&#34;表明   日期/时间使用当地时区,即&#34; hh&#34;小时和&#34; mm&#34;   比UTC早几分钟。

     

时区偏移量为&#34; -hh:mm&#34;表明   日期/时间使用当地时区,即&#34; hh&#34;小时和&#34; mm&#34;   比UTC晚几分钟。

本节回答您的问题

  

时区偏移量为&#34; + hh:mm&#34;表示日期/时间使用的是当地时区&#34; hh&#34;小时和&#34; mm&#34;比UTC早几分钟。

<强> TL; DR

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