如何用PHP显示本地时间

时间:2009-09-23 16:06:11

标签: php timezone

我们的服务器设置为GMT时间,所以小时不会在春季和秋季继续跳跃。然而,在夏季,令人讨厌的是,所有时间都会显示一小时。

如何考虑PHP中的本地时区(特别是当服务器认为本地时区是GMT时),获取并显示时间。

或者,我如何知道某个区域目前是否正在使用“夏令时”?

或者,如何显示GMT时间戳或不同的时区?

5 个答案:

答案 0 :(得分:4)

你可以在PHP中添加这一行:

putenv("TZ=US/Eastern");

每次对time()/ date()的调用都会给你时区的时间。

List of time zones

此代码将显示东部时区(美国)的当前时间:

putenv("TZ=US/Eastern");
date("h:i:s")

答案 1 :(得分:4)

实际上,我想我可能找到了我需要的答案......

date_default_timezone_set()
// Sets the default timezone used by all date/time functions in a script 

PHP手册条目位于: - http://us2.php.net/manual/en/function.date-default-timezone-set.php

答案 2 :(得分:0)

您可以使用date功能来抵消GMT

答案 3 :(得分:-1)

显示本地时间的最简单方法是使用JavaScript:

<?php

// Get unix time from database
$seconds = .....;

?>
<html>
  <head>
    <script type="text/javascript">
        function showLocalTime()
        {
            var seconds = <?=$seconds;?>;
            var date = new Date(seconds*1000);
            var hours = date.getHours();
            var minutes = "0" + date.getMinutes();
            var seconds = "0" + date.getSeconds();
            var formattedTime = hours + ':' + minutes.substr(minutes.length-2) + ':' + seconds.substr(seconds.length-2);

            document.getElementById("local_time").innerHTML = "Local Time: " + formattedTime;
        }
  </script>

  </head>

  <body onload="showLocalTime()">
    <h2 id="local_time"> Local Time: </h2>
  </body>

</html>

答案 4 :(得分:-3)

获取日期/时间并首先检查月份(如果是DATETIME字段则为破折号)是“夏季月份”,还是将导致时间为一小时的月份。

如果是,请将其转换为unix时间戳。然后,将60 * 60(60分钟)的(或减去,无论哪种方式)添加到时间戳并转换为人类可读的格式。

问题解决了!