2016-07-01 10 views
0

間違っている2つの日付の間のJavaScriptの違い私は(期待差が1時間54分)10時54分と9時のように、2回betweentの差を計算しようとしている:1時間で

Date.prototype.diffTime = function(date){ 
    return new Date(this-date); 
} 

しかし、これは私が期待するより1時間多く返します:

Thu Jan 01 1970 10:54:00 GMT+0100 (CET) 
Thu Jan 01 1970 09:00:00 GMT+0100 (CET) 
Thu Jan 01 1970 02:54:00 GMT+0100 (CET) 

なぜ1時間追加されますか?入力時間は正しいです。 getTime()を使用すると、1.9時間(this-date/1000/60/60)になりますが、これも正しいです。

ご意見ありがとうございます。あなたは違いから日付を構築する.IF

function getTimeHHMI(date){ 
    var minutes = date/1000/60; 
    var hours = Math.floor(minutes/60); 
    minutes -= hours*60; 

    return [hours, minutes].join(':'); // returns 1:54 
} 

答えて

1

長い日付道を次のようになります。私は今、私は必要なものを行いそのシンプルな機能を書きましたthis-datenew Dateの場合、その値は1:54 amを表すunixタイムスタンプとして解釈されます。 GMT + 0の1:54 amはGMT + 1の2:54 amと同じです。私。ブラウザはUNIXのタイムスタンプを現地時間に変換します。

の期間をに変更することは意味がありません。期間は時間帯に依存しないからです。

1

この日付は、ミリ秒を返し、それはあなたが合格すると1970

Date.prototype.diffTime = function(date){ 
    return (this-date)/1000/60/60; 
} 
+0

申し訳ありませんが、私は両方の回答を受け入れることはできません:) – Kugel

関連する問題