更改JS时钟显示的时区

时间:2017-11-28 18:57:10

标签: javascript

我正在使用此代码显示我正在构建的网站上的当前时间。

https://www.w3schools.com/js/tryit.asp?filename=tryjs_timing_clock

有人可以告诉我要添加哪些代码以便将时间更改为其他时区吗?我也喜欢显示12小时增量而不是24小时的时间。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以通过将时间转换为UTC并添加所需的小时数来更改时区

var utc = today.getTime() + (today.getTimezoneOffset() * 60000);
var newDate = new Date(utc + (3600000 * -2));

至于转换为12小时格式

var h = newDate.getHours() % 12;



function startTime(id, offset) {
    var today = new Date();
    var utc = today.getTime() + (today.getTimezoneOffset() * 60000);
    var newDate = new Date(utc + (3600000 * -2));
    var h = newDate.getHours() % 12;
    var m = newDate.getMinutes();
    var s = newDate.getSeconds();
    m = checkTime(m);
    s = checkTime(s);
    document.getElementById('txt').innerHTML =
    h + ":" + m + ":" + s;
    var t = setTimeout(startTime, 500);
}
function checkTime(i) {
    if (i < 10) {i = "0" + i};  // add zero in front of numbers < 10
    return i;
}
&#13;
<!DOCTYPE html>
<html>
<head>
</head>

<body onload="startTime();">

<div id="txt"></div>
</body>
</html>
&#13;
&#13;
&#13;

修改

如在评论中提及通过@BrockLee - 因为它是它会,的确,显示12&#39;○时钟作为0。如果这是不期望的,则可以更改设置小时,例如线,

var h = (newDate.getHours() % 12 == 0) ? 12 : newDate.getHours() % 12;

答案 1 :(得分:0)

在该示例中,您可以使用today.toLocaleTimeString()代替以当前用户的语言环境的首选格式显示它。

此外,JavaScript中的MDN's documentation on Date/Time相关功能可能会更有帮助。