2014-10-22 38 views
0

我不知道如果我這樣做的權利,但日期的功能似乎正常顯示,但由於某種原因它返回在AM PM不,例子的時候,如何格式化mongoDate功能正常

現在,如果我是用來創建一個新的日期:

$time = new mongoDate(); 

然後我保存在數據庫中記錄它顯示像這樣:

ISODate("2014-10-22T00:22:34.619Z") 

我假設有些事我我不是在做cor rectly,但是當我然後格式化它,使用:

date('d M, Y h:ia', $time->sec) 

它顯示像這樣:

22 Oct, 2014 12:22am 

我希望這是一件極爲明顯,但是從我可以在ISOdate告訴,它在AM時間顯示,所以我的問題是,它爲什麼將它存儲在AM而不是PM?

+0

時間是祖魯時間或格林威治標準時間,它可能與您當前的時區不同。以GMT格式存儲日期是最佳做法。 – 2014-10-22 01:26:40

+0

我如何使用mongoDate函數來做到這一點? – 2014-10-22 02:12:50

回答

1

$time->sec具有unix時間戳。當您在date()函數中使用此時間戳時,格式日期將基於您設置的時區。這就是爲什麼你得到12小時的差異。

$dt = new DateTime("@" . $time->sec); // DateTime instance in Z (zulu) timezone 
print_r($dt); // print the object 
$dt->setTimezone(new DateTimezone('... set your timezone ...')); 
print_r($dt); // print the object