解析Twitter API日期戳

Chr*_*ong 27 javascript php twitter time parsing

我正在使用twitter API返回状态更新列表及其创建时间.它以下列格式返回创建日期:

Fri Apr 09 12:53:54 +0000 2010

什么是最简单的方法(用PHP或Javascript)来格式化这个像09-04-2010?

Ate*_*ral 47

通过JavaScript进行跨浏览器,时区感知的解析:

var s = "Fri Apr 09 12:53:54 +0000 2010";

var date = new Date(
    s.replace(/^\w+ (\w+) (\d+) ([\d:]+) \+0000 (\d+)$/,
        "$1 $2 $4 $3 UTC"));
Run Code Online (Sandbox Code Playgroud)

在IE,Firefox,Safari,Chrome和Opera上测试过.

  • 很好的答案.为什么Twitter会以这种可怕的日期格式定居? (14认同)

Ale*_*Mcp 33

strtotime("dateString");将它转换为本机PHP日期格式,然后您可以使用该date()函数将其打印出来,以便您喜欢它.

  • 等等,让它工作.date("jS F Y",$ time)给了我2010年4月9日.谢谢! (3认同)

And*_*y E 6

如果+0000从字符串中删除,JavaScript可以解析该日期:

var dStr = "Fri Apr 09 12:53:54 +0000 2010";
dStr = dStr.replace("+0000 ", "") + " UTC";
var d = new Date(dStr);
Run Code Online (Sandbox Code Playgroud)

Chrome - 我怀疑其他一些非IE浏览器 - 实际上可以用+0000字符串中的当前内容解析它,但您也可以删除它以实现互操作性.

PHP可以用strtotime解析日期:

strtotime("Fri Apr 09 12:53:54 +0000 2010");
Run Code Online (Sandbox Code Playgroud)

  • 这将在正确的时区解析:`dStr = dStr.replace("+ 0000","")+"GMT";` (3认同)