2017-04-19 113 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。非常感谢! –