隐藏日期格式自2012-03-19T22:10:56.000Z至Wed Nov 13 18:06:37 +0000 2013

时间:2013-12-12 21:04:11

标签: php date

如何在不使用字符串函数(如substr)的情况下将日期格式从2012-03-19T22:10:56.000Z转换为Wed Nov 13 18:06:37 +0000 2013。 Gnip正在使用这种日期格式。不确定它是什么格式。

我尝试使用日期功能

$postedTime = "2012-03-19T22:10:56.000Z";
date($postedTime,"D M d H:i:s O Y"); 

但是我收到错误,因为$postedTime是一个字符串而不是长变量。

3 个答案:

答案 0 :(得分:3)

为什么在使用专门设计用于处理日期的函数时使用substr()?

$date = new DateTime('2012-03-19T22:10:56.000Z');
echo $date->format('r Y');

See it in action

答案 1 :(得分:1)

您需要在日期函数中交换订单

date('format string', $time)

所以你想要:

date("D M d H:i:s O Y", strtotime($postedTime)); 

http://www.php.net/manual/en/function.date.php

答案 2 :(得分:0)

您可以使用

转换DateTime对象中的字符串
$date = new DateTime($postedTime);

然后你可能需要更改时区(因为你的postedTime是Zulu的时区Z)

$date->setTimezone(new DateTimeZone('Europe/Rome'));

也可以添加或减去合适的偏移量DateInterval

最后,如果您需要在date中使用时间戳,请使用[getTimeStamp][1]

$ts  = $date->getTimeStamp();

如果您在祖鲁语中有所有日期时间,请使用

$date = new DateTime($postedTime);
date("Y-m-d H:i:s", $date->getTimeStamp());

或者如果您不需要时间戳,

$date = new DateTime($postedTime);
print $date->format('Y-m-d H:i:s');

您应该输入相同的日期。如果偏移一个或多个小时加或减,则为a time zone problem