用奇怪的推特格式用PHP格式化日期

Joe*_*ner 4 php datetime date-conversion

通过twitter API,我能够获得推文时的日期时间

Jul 25 17:42:55 +0000 2013
Run Code Online (Sandbox Code Playgroud)

现在,在PHP中,我如何将其转换为标准的unix:

2013-6-25 17:42:55
Run Code Online (Sandbox Code Playgroud)

我不是肯定的任何处理日期时间,但我认为还有一个更简单的方法来做到这一点,而不必通过解析和改变的事情与str_replacesubstr

Phi*_*hil 9

使用DateTime该类,特别是静态createFromFormat()方法

$dt = DateTime::createFromFormat('M j H:i:s P Y', 'Jul 25 17:42:55 +0000 2013');
echo $dt->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)

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

  • Twitter Feed邮票看起来像"Mon Sep 08 15:19:11 +0000 2014",正确的格式是$ d =\DateTime :: createFromFormat('DM d H:i:s P Y',(string)$ x - > created_at); (11认同)

Dev*_*er0 8

简单地通过它strtotime.请注意,这包括时区+0000,因此时间也将相对于您的时区进行转换.

<?php
$date = "Jul 25 17:42:55 +0000 2013";
echo date("Y-m-d H:i:s", strtotime($date));
Run Code Online (Sandbox Code Playgroud)