我正在使用此代码显示我正在构建的网站上的当前时间。
https://www.w3schools.com/js/tryit.asp?filename=tryjs_timing_clock
有人可以告诉我要添加哪些代码以便将时间更改为其他时区吗?我也喜欢显示12小时增量而不是24小时的时间。
任何帮助都将不胜感激。
答案 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;
修改强>
如在评论中提及通过@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相关功能可能会更有帮助。