2017-04-19 110 views
0

我正在使用以下代碼按照時區參數獲取服務器上的當前時間,但出現錯誤輸出。大約延遲10/20分鐘然後服務器時間。它也沒有得到更新。如何解決它?任何想法?php時區與服務器上的當前時間不匹配

<?php 

function server_time_as_per_users_zone($users_zone){ 
    $dateTime = new DateTime('now', new DateTimeZone($users_zone)); 
    $r = $dateTime->format("d-m-Y h:m A"); 
    return $r; 
} 

echo server_time_as_per_users_zone("Asia/Dhaka"); 
+0

你檢查你的服務器原來的時間好嗎? :)我認爲這個腳本是完美的,問題是你的輸入 – Peter

+0

它現在在我的本地窗口10臺Xampp服務器 –

回答

1

您正在使用錯誤的格式掩碼。 m代表月份編號,而不是分鐘。

將其更改爲

function server_time_as_per_users_zone($users_zone){ 
    $dateTime = new DateTime('now', new DateTimeZone($users_zone)); 
    $r = $dateTime->format("d-m-Y h:i A"); 
    return $r; 
} 

echo 'UTC   - ' . server_time_as_per_users_zone("UTC").PHP_EOL; 
echo 'Europe/London - ' . server_time_as_per_users_zone("Europe/London").PHP_EOL; 
echo 'Asia/Dhaka - ' . server_time_as_per_users_zone("Asia/Dhaka").PHP_EOL; 

結果:

UTC   - 19-04-2017 05:40:23 PM 
Europe/London - 19-04-2017 06:40:23 PM 
Asia/Dhaka - 19-04-2017 11:40:23 PM 
+0

這就是爲什麼你52K。非常感謝! –