0

タイムスタンプを時間に変換する関数があります。

function convertUnixTimeToTime(UNIX_timestamp) {
    var a = new Date(UNIX_timestamp);
    var fin_hour = String(a.getHours())
    if (fin_hour.length == 1) {
        fin_hour = '0' + fin_hour;
    }
    var fin_minutes = String(a.getMinutes())
    if (fin_minutes.length == 1) {
        fin_minutes = '0' + fin_minutes;
    }
    var time = fin_hour + ':' + fin_minutes;
    return time;
}

アプリをローカルでテストしています。コンピューターのタイムシフトは+4です。ノードアプリから現在の時刻を取得しようとすると:

console.log('Current time is: ' + convertUnixTimeToTime(new Date().getTime()));

現在の現地時間を取得します。予想どおり、Date()。getTime()はUNIXの絶対時間をミリ秒単位で返す必要があります。私の関数convertUnixTimeToTime()はタイムシフトを指定していません。そのため、シフトなしで明確な時間を取得する必要があります。なぜ私は+4時間シフトするのですか?ありがとう。

4

2 に答える 2

2

getHoursand関数はgetMinutes常に現地時間を返します。これnew Date(new Date().getTime())は何よりも混乱を招きます-それは同じです-new Date()それはタイムゾーンについて何も変更しません。

探しているものを取得するには、とを使用getUTCHoursgetUTCMinutesます。

于 2012-10-21T15:36:37.100 に答える
1

なぜならDate.getHours()Date.getMinutes()定義上、現地時間を返すのですか?

于 2012-10-21T15:33:12.730 に答える