2012-01-05 27 views
-1

Dateオブジェクトを常に4時間オフセットに調整します。どうすればこれを達成できますか?すべての時間が4時間オフセットされるように日付を変更してください。

var d = new Date(); 
// d would be 4 hours in the past 
+1

を呼び出すことによって、それを修正することができます。あなたが解決しようとしている大きな問題は何ですか?さらに、「日付」の行動を変更することは、文書化された既存の契約を破って、最も驚くべきことの原則に違反し、広く「良いもの」とみなされている他の多くのものに違反します。 –

+3

'スタート - >コントロールパネル - >日付/時刻設定' –

+0

あなた/実際にやっていることは何ですか? – Dan

答えて

0

特定の日付の日付オブジェクトを作成できます。ただ、現在の時刻から正しいミリ秒を減算し、日付関数にそれを渡す:

var d = new Date(new Date().getTime() - 1000*60*60*4); 

または手動で時間

var d = new Date(); 
d.setHours((12 + (d.getHours() - 4))%12) 
+0

これは、OPが望んでいるものではないと思う1つの「Date」インスタンスを変更します。 –

+1

@MДΓΓLLLLあなたが何を意味しているのか見ていますが、これはどのように*すべきかです。日付オブジェクトのインスタンスを操作する。 –

+0

Dateオブジェクトを変更する必要があります。それは醜いですが、私は仕事を終わらせるために何をしなければなりません。ありがとう、 – user721081

0

にこのような何かを設定することができます

d.setHours(d.getHours()-4); 
+0

これは、OPが望んでいるものではないと思う1つの「Date」インスタンスを変更します。 –

+0

すべてのDateオブジェクトに対して変更を加える必要があります。 – user721081

2
Date.withOffset = function(offset){ 
    var r = new Date(); 
    r.setHours(r.getHours()+offset); 
    return r; 
}; 

var d = Date.withOffset(-4) 
// d would be 4 hours in the past 

あなたはより良い名前を思いつくかもしれません。

あなたのページ上のすべてのjavascriptを破るしたい場合は、コースの使用の可能性があります

Date = function() { 
    var old = Date; 

    function broken() { 
     var r = new old(); 
     r.setHours(r.getHours()-4); 
     return r; 
    } 
    broken.fix = function() { 
     Date = old; 
    }; 

    return broken; 
}(); 

あなたはその後、いくつかの本当に醜いハッキングせずに、あなたがすることはできませんDate.fix()

+0

システム時間を変更することはできません。私はセットトップボックスを働いており、時間はいつもGMTです。すべてのDateオブジェクトに対して過去4時間までの時間が必要です。私はそれが醜いことを知っているし、ベストプラクティスに反するが、これは私がしなければならないものです... – user721081

+0

上記の日付機能は動作しません。 – user721081

関連する問題