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) の間の時間のオフセットを定義できます。now.getUTCMonth()次に、の代わりに、一連の UTC タイミング メソッドを使用できます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 に答える