以下脚本应根据偏移量-10(夏威夷)显示当前本地时间,但它不起作用。
无法弄清楚我哪里出错了。
<h3>Current Time in Arizona is
<script type="text/javascript">
<!--
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
if (minutes < 10)
minutes = "0" + minutes
var suffix = "AM";
if (hours >= 12) {
suffix = "PM";
hours = hours - 12;
}
if (hours == 0) {
hours = 12;
}
document.write("<b>" + hours + ":" + minutes + " " + suffix + "</b>")
//-->
</script>
</h3>
答案 0 :(得分:5)
首先,您显示的代码只返回当前的本地时间。它甚至尝试在特定时区内更改
。其次,您需要阅读the timezone tag wiki。特别是,请阅读标题为&#34; Time Zone!= Offset&#34;。
的部分现在碰巧亚利桑那州和夏威夷目前不使用夏令时,所以如果那些是你唯一的两个问题,你可以调整偏移量。但我确定您正在寻找更通用的解决方案。
要正确执行此操作,您需要一个实现IANA时区数据库的库。 I list several of them here。例如,以下是使用带有moment.js插件的moment-timezone在洛杉矶显示当前时间的示例:
moment().tz("America/Los_Angeles").format("h:mm a")
如果您只是想快速轻松地在特定时区的网站上放置时钟,那么我建议您使用the free solution offered by timeanddate.com。
答案 1 :(得分:0)
编写一个函数,将日期移动分钟 /您的选择
function offsetDate(offsetMinutes, d) {
if (d) d = new Date(d);
else d = new Date();
if (offsetMinutes) d.setUTCMinutes(d.getUTCMinutes() + offsetMinutes);
return d;
}
offsetDate(-10*60); // Thu Sep 05 2013 12:03:06 GMT+0100 (GMT Daylight Time)
现在使用 UTC 函数来获取时间