php timezone与服务器上的当前时间不匹配

时间:2017-04-19 17:23:06

标签: php

我正在使用以下代码按时区参数获取服务器上的当前时间,但输出错误。大约10/20分钟延迟服务器时间。它也没有得到更新。怎么解决?任何想法?

<?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");

1 个答案:

答案 0 :(得分: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