0

私は簡単なスクリプトを持っています:

function test(time) {
    var dt = new Date( time * 1000 )
    var sec = dt.getSeconds()
    if ( sec < 10 ) sec = "0" + sec
    var min = dt.getMinutes()
    if ( min < 10 ) min = "0" + min
    var hour = dt.getHours()
    if ( hour < 10 ) hour = "0" + hour
    var time = hour + ":" + min + ":" + sec
    return time

期待される結果(test(1800) ) : 30:00ですが、私は持っていresult: 04:30:00ます。このスクリプトを修正するのを手伝ってもらえますか?私のタイムゾーンGMT+04

4

1 に答える 1

3

答えは非常に簡単です。

Dateオブジェクトのコンストラクターは、以下を受け入れることができます。

1970年1月1日00:00:00UTC(Unixエポック)からのミリ秒数を表す整数値

Date.get*関数はローカルタイムゾーンを使用して戻ります。

本当に必要な場合は、Date.getUTC*代わりに使用してください。

function test(time) {
    var dt = new Date( time * 1000 );
    var sec = dt.getUTCSeconds();
    if ( sec < 10 ) sec = "0" + sec;
    var min = dt.getUTCMinutes();
    if ( min < 10 ) min = "0" + min;
    var hour = dt.getUTCHours();
    if ( hour < 10 ) hour = "0" + hour;
    var time = hour + ":" + min + ":" + sec;
    return time;
}
于 2012-10-17T08:17:17.553 に答える