如何解析YouTube返回日期到时间戳?

问题描述:

的YouTube返回如下Updated dateSubmitted on日期:2010-08-22T04:46:18.000Z如何解析YouTube返回日期到时间戳?

是否有一个PHP函数,或解析这个日期面具?

<?php 
    $ts = strtotime("2010-08-22T04:46:18.000Z"); 
    echo date("Y-m-d H:i:s", $ts); 
?> 

这会在我的系统上返回2010-08-22 09:46:18。您看到,日期的时间部分包含时区信息(Z为祖鲁时间),因此google数据api返回的日期为Aug/22/2010 04:46:18 GMT。我的电脑在格林威治标准时间5点,因此时间部分在当地时间被翻译为09:46:18。希望这解释了一切。

听起来像strtotime是你在找什么。

编辑:如果这不起作用,看看在Date and Time classes - 有在指定的格式解析日期(like this方法 - 它并不直接返回一个时间戳,但如果你构建从这个日期时间,你可以使用它的getTimestamp - 方法)

+0

strtotime不会为此日期格式返回正确的时间戳! – 2010-12-15 09:32:32

+0

@doublethink:请看看我的编辑 – oezi 2010-12-15 09:42:37

+0

strtotime应该能够解析这个日期。见http://www.php.net/manual/en/datetime.formats.compound.php,部分本地化符号> SOAP – 2010-12-15 09:52:25

试试这个:

$date=substr("2010-08-22T04:46:18.000z",0,strlen("2010-08-22T04:46:18.000z")-1); 
$stamp=strtotime($date); 

的“Z”的结尾似乎是的strtotime的问题。

+0

你的意思是'substr(“2010-08-22T04:46:18.000Z”,0,-1)'(其中,BTW是不必要的)? – deceze 2010-12-15 09:59:07

+0

但是如果你住在英国,'2010-08-22 04:46:18'只和'2010-08-22T04:46:18.000Z'同日。 :) – deceze 2010-12-15 10:12:48

+0

是的,如果你考虑一下,它是相对于你在电影添加/编辑时的时区:)) – Catalin 2010-12-15 10:15:29