【问题标题】:How to convert yyyy-MM-ddTHH:mm:ssZ to yyyy-MM-dd HH:mm:ss?如何将 yyyy-MM-ddTHH:mm:ssZ 转换为 yyyy-MM-dd HH:mm:ss?
【发布时间】:2012-09-09 21:37:04
【问题描述】:

Paypal 返回以下格式的时间戳:

yyyy-MM-ddTHH:mm:ssZ

而且我不知道该怎么处理它......

如何在 php 中使用本地时区将其转换为 yyyy-MM-dd HH:mm:ss?

我很想preg_replace 神秘的字母,但有件事告诉我一定有更好的方法。我的区域似乎也有 8 小时的差异,我不确定如何减去。

【问题讨论】:

  • 没什么神秘的? T 是时区缩写,Z 是时区偏移量,只需从中创建一个时间戳并使用 date() 来制作您想要的任何内容..

标签: php timestamp


【解决方案1】:

您可以使用strtotime() 获取 UNIX 时间戳。从那里您可以做任何您需要的事情:DateTime 对象、date() 等。

date() 为例:

echo date('r', strtotime('2012-09-10T10:00:00Z'));

【讨论】:

  • 不再推荐使用 strtotime() 和 date() 函数。使用 DateTime 类。
【解决方案2】:

使用DateTime 类来施展你的魔法。

$date = new DateTime('2012-09-09T21:24:34Z');
$date->format('Y-m-d'); # read format from date() function

【讨论】:

  • 当然,这里是:[TIMESTAMP] => 2012-09-09T21:24:34Z 似乎是零偏移,虽然我听说这种格式可能允许一些数字偏移,接近 Z
  • 是的,这也有效,谢谢! $date->format('Y-m-d H:i:s');
  • @Anonymous 查找 ISO 8601 以获取有效时间格式。 “Z”等价于“+00”或“+00:00”或“+0000”。希望 DateTime(或您的代码)能够理解时区。
猜你喜欢
  • 1970-01-01
  • 2016-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-28
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多