我正在使用twitter API返回状态更新及其创建时间的列表。它以以下格式返回创建日期:
[Fri Apr 09 12:53:54 +0000 2010
最简单的方法(使用PHP或Javascript)将其格式化为09-04-2010?
[strtotime("dateString");
将其转换为本地PHP日期格式,然后您可以使用date()
函数将其打印出来,如您所愿。
跨浏览器,通过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"));
在IE,Firefox,Safari,Chrome和Opera上测试。
如果您从字符串中删除+0000
,则JavaScript可以解析该日期:
var dStr = "Fri Apr 09 12:53:54 +0000 2010";
dStr = dStr.replace("+0000 ", "") + " UTC";
var d = new Date(dStr);
Chrome-我怀疑还有其他一些非IE浏览器-可以将其与字符串中的+0000
进行解析,但是出于互操作性考虑,您也可以删除它。
PHP可以使用strtotime解析日期:
strtotime("Fri Apr 09 12:53:54 +0000 2010");
这里是Twitter API的日期格式:
Sat Jan 19 20:38:06 +0000 2013
"EEE MMM dd HH:mm:ss Z yyyy"
Javascript。正如@Andy指出的那样,在IE方面将是一个ch子。因此,最好依靠一个能够持续执行此操作的库。 DateJS似乎是一个不错的库。
添加库后,您将其解析并格式化为:
var date = Date.parse("Fri Apr 09 12:53:54 +0000 2010");
var formatted = date.toString("dd-MM-yyyy");
在PHP中,您可以使用日期函数或DateTime类进行相同的操作(自PHP 5.2.0起可用:]
$date = new DateTime("Fri Apr 09 12:53:54 +0000 2010");
echo $date->format("d-m-Y"); // 09-04-2010
FYI,在Java中是:
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
Date d = sdf.parse(dateAsString);