1

可能重复:
在javascript中将日期转换为另一个时区

如何让这个节目得到台北的时间?他们有什么需要解决的吗?还是我需要为它添加一些代码?

var yudan = "";
var now = new Date();
var month = now.getMonth() + 1;
var date = now.getDate();
var year = now.getFullYear();
if (year < 2000) year = year + 1900;

document.write(year + "." + yudan + month + "." + date + ".");

document.write("<span id=\"yudan_clock\"><\/span>");
var now,hours,minutes,seconds,timeValue;
function yudan_time(){
now = new Date();
hours = now.getHours();
minutes = now.getMinutes();
seconds = now.getSeconds();
timeValue = (hours >= 12) ? " " : " ";
timeValue += ((hours > 12) ? hours - 0 : hours) + ":";
timeValue += ((minutes < 10) ? " 0" : " ") + minutes + ":";
timeValue += ((seconds < 10) ? " 0" : " ") + seconds + "";
document.getElementById("yudan_clock").innerHTML = timeValue;
setTimeout(yudan_time, 100);}
yudan_time();
4

1 回答 1

0

如果问题是让时钟显示台北的时间,请使用该getTimezoneOffset()方法。这使您可以定义 UTC/GMT 和所需时区(在台北为 UTC+8)之间的时间偏移量。然后,您可以使用一组 UTC 计时方法,例如now.getUTCMonth()代替now.getMonth().

所以这就是您的代码的外观:

var yudan = "";
var now = new Date();
var month = now.getUTCMonth() + 1;
var date = now.getUTCDate();
var year = now.getUTCFullYear();
if (year < 2000) year = year + 1900;
document.write(year + "." + yudan + month + "." + date + ".");

document.write("<span id=\"yudan_clock\"><\/span>");
var now,hours,minutes,seconds,timeValue;
function yudan_time(){
now = new Date();
hours = now.getUTCHours() + (now.getTimezoneOffset()/60);
minutes = now.getUTCMinutes();
seconds = now.getUTCSeconds();
timeValue = (hours >= 12) ? " " : " ";
timeValue += ((hours > 12) ? hours - 0 : hours) + ":";
timeValue += ((minutes < 10) ? " 0" : " ") + minutes + ":";
timeValue += ((seconds < 10) ? " 0" : " ") + seconds + "";
document.getElementById("yudan_clock").innerHTML = timeValue;
setTimeout(yudan_time, 100);}
yudan_time();

请记住,该getTimezoneOffset()方法以分钟为单位返回一个值;对于台北,它将返回 480,因此您需要除以 60 才能获得小时数。

希望这可以帮助!

于 2012-12-18T04:57:36.207 回答