我们的服务器设置为GMT时间,因此小时不会在春季和秋季继续跳跃。然而,在夏季,令人烦恼的是,所有时间都显示一个小时。如何使用PHP显示当地时间
如何获取并显示时间,并考虑到PHP中的本地时区(特别是当服务器认为本地时区为GMT时)。
或者,我怎么知道某个地区目前是否正在使用“夏令时”?
或者,如何显示GMT时间戳或不同的时区?
我们的服务器设置为GMT时间,因此小时不会在春季和秋季继续跳跃。然而,在夏季,令人烦恼的是,所有时间都显示一个小时。如何使用PHP显示当地时间
如何获取并显示时间,并考虑到PHP中的本地时区(特别是当服务器认为本地时区为GMT时)。
或者,我怎么知道某个地区目前是否正在使用“夏令时”?
或者,如何显示GMT时间戳或不同的时区?
其实,我想我可能已经找到我需要的答案...
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
获取日期/时间并首先检查月份(如果其DATETIME字段是否为破折号)是“夏季月”还是导致时间为一小时的月份。
如果是这样,请将其转换为unix时间戳。然后,将60 * 60(60分钟)添加(或减去出现的方式)到时间戳并转换为可读格式。
问题解决!
你可以在PHP中加入这一行:
putenv("TZ=US/Eastern");
而且到时候每个后续调用()/日期()会给你的时间你的时区。
此代码将在东部时区(美国)显示当前时间:
putenv("TZ=US/Eastern");
date("h:i:s")
显示当地时间最简单的方法是使用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>
当你说local:local是谁?服务器?每个用户?只有你? – jimyi 2009-09-23 16:13:48
用户本地(对于所有用户都是相同的,但与服务器所在的区域不同) – 2009-09-23 16:15:01
为避免混淆,夏令时与此处的夏令时相同。 – 2009-09-23 16:16:50