【问题标题】:Get Timezone date and time using PHP [duplicate]使用PHP获取时区日期和时间[重复]
【发布时间】:2013-08-17 05:51:16
【问题描述】:

有没有办法在不更改默认时区的情况下获取特定时区? 我尝试使用此代码来获取时区,但是当我恢复它时没有不同的输出。

echo '<br />'.date('Y-m-d H:i:s') . '<br />';
date_default_timezone_set('Australia/Melbourne'); 
echo '<br />' . date('Y-m-d H:i:s');
date_default_timezone_set('America/Chicago'); 
echo '<br />' . date('Y-m-d H:i:s');

输出: 2013-08-15 03:24:48 2013-08-15 13:24:48 2013-08-14 22:24:48

作为输出,最后一行添加了一个时间。

【问题讨论】:

  • 你试过date_default_timezone_get()来确定当前时区吗?
  • 在您的代码中回显的最后声明的默认时区将用作默认时区。你不能混合它们。

标签: php date time timezone


【解决方案1】:

✓ 将输出以下代码:


澳大利亚/墨尔本时间 - 2013-08-15 13:48:57

美国/纽约 - 2013-08-14 23:48:57

<?php

echo "Australia/Melbourne time - ";
$now = new DateTime(null, new DateTimeZone('Australia/Melbourne'));
echo $now->format('Y-m-d H:i:s');

echo "<br>";

echo "America/New_York - ";

$now = new DateTime(null, new DateTimeZone('America/New_York'));
echo $now->format('Y-m-d H:i:s');

?>

【讨论】:

    【解决方案2】:

    根据strtotimedatetime 格式,您可以执行以下操作:

    echo date("Y-m-d H:i:s",strtotime(date("H:i:s")." America/Chicago"));
    

    甚至更好:

    echo date("Y-m-d H:i:s",strtotime("now America/Chicago"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-13
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 2016-10-12
      • 1970-01-01
      相关资源
      最近更新 更多