2017-04-12 121 views
0

爲什麼我的時區與我的時區中的原始日期時間不同?帶時區的PHP時間戳

ex。我在8/9/17 8:30:51運行代碼。

其結果將是17年4月10日11:30:51

$now = new DateTime(); 
now->setTimezone(new DateTimeZone('Asia/Manila')); 
echo $now->format("m/d/y G.i:s<br>"); 
+1

你的服務器處於什麼時區? –

+0

@JoseMarques在我的桌面上我正在使用UTC canada – questioner

+0

我在談論你使用哪個Web服務器?例如Apache,Windows ISS。 –

回答

0

這很簡單,它被設置爲通用時間區的日期,在你的Web服務器和大多數的瀏覽器。

$now = new DateTime(); 
$now->setTimezone(new DateTimeZone("Asia/Manila")); 
echo $now->format("m/d/y G.i:s<br>"); 

因此,您使用此代碼來參數化您的日期。

DateTimeZone - >要你的時區,我預測它是亞洲/馬尼拉

格式 - >格式日期所需的格式。

如果它不工作,試試這個:

在本地服務器上,您可以在PHP_INI更改配置。

在您的文件尋找:

;定義日期函數使用的默認時區

; http://php.net/date.timezone

date.timezone = UTC

變化爲

;定義日期函數使用的默認時區

; http://php.net/date.timezone

date.timezone =亞洲/馬尼拉

如果這沒有解決您的問題。在所有PHP文件的開頭使用這個。

date_default_timezone_set("Asia/Manila"); 
setlocale(LC_ALL, 'your_language'); 

例:

date_default_timezone_set("America/Sao_Paulo"); 
setlocale(LC_ALL, 'pt_BR'); 

如果你喜歡,給出分數還是很有幫助的標誌。