我们的服务器设置为GMT时间,所以小时不会在春季和秋季继续跳跃。然而,在夏季,令人讨厌的是,所有时间都会显示一小时。
如何考虑PHP中的本地时区(特别是当服务器认为本地时区是GMT时),获取并显示时间。
或者,我如何知道某个区域目前是否正在使用“夏令时”?
或者,如何显示GMT时间戳或不同的时区?
答案 0 :(得分:4)
你可以在PHP中添加这一行:
putenv("TZ=US/Eastern");
每次对time()/ date()的调用都会给你时区的时间。
此代码将显示东部时区(美国)的当前时间:
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分钟)的(或减去,无论哪种方式)添加到时间戳并转换为人类可读的格式。
问题解决了!