2010-12-15 61 views

回答

6
<?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。希望這解釋了一切。

3

聽起來像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

0

試試這個:

$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