在php中转换时间戳


Converting timestamps in php

我从twitter api获得了这个格式的时间戳。

Fri Dec 28 20:06:38 +0000 2012

我想把它转换成像这样的标准时间戳格式。

2012-12-10 16:20:18

我对php中的日期很陌生。我该怎么做?

您可以使用DateTime:

$date = new DateTime('Fri Dec 28 20:06:38 +0000 2012');
echo $date->format('Y-m-d H:i:s');

我喜欢DateTime的原因是它提供了很好的面向对象实现,并且使它更容易处理令程序员头疼的日期。要了解该类的更多信息,请阅读我已经参考过的手册。

您可以使用strtotime将初始字符串转换为UNIX时间戳,然后使用strftime将其转换回字符串:

strftime('%Y-%m-%d %H:%M:%S', strtotime('Fri Dec 28 20:06:38 +0000 2012'));

这个调用返回字符串2012-12-28 21:06:38——也就是你正在寻找的。

使用

 $originalDate = "Fri Dec 28 20:06:38 +0000 2012";
 echo $newDate = date("Y-m-d h:i:s", strtotime($originalDate));

工作示例http://codepad.viper-7.com/AhLcEU

如果使用php <5.2.0(一些共享主机)使用strtotime和date的组合

date('Y-m-d H:i:s', strtotime('Fri Dec 28 20:06:38 +0000 2012'));