ブラウザから実行している場合ではなく、Javascript からシステム時刻を変更することはできません。それを行うには、javascript とオペレーティング システムの API をインターフェイスする機能を備えた特別な環境が必要です。これは単純なことではなく、おそらくあなたが取り組んでいるアプリケーションの範囲外です。
オフセットを使用して現在の日付を取得する手段を備えた関数/オブジェクトを作成することをお勧めします。このような:
Foo = function () {};
Foo.prototype.offset = 8;
Foo.prototype.getDate = function () {
var date = new Date();
date.setHours(date.getHours() + this.offset);
return date;
}
これで、 をインスタンス化しfoo
、オフセット (デフォルトでは 8) を設定して、それを操作できます。オフセット時間が必要な場合は、次のようにします。
var foo = new Foo();
var bar = foo.getDate();
bar
は刻みませんが、現在の日付にオフセットが必要な場合はいつでもFoo
'sgetDate
を再度使用できます。
編集:固定の日付から開始するには、次のようにコンストラクターを使用できます。
Foo = function (baseDate) {
this._date = baseDate;
this._fetched = new Date();
}
Foo.prototype.getDate = function () {
var now = new Date();
var offset = now.getTime() - this._fetched.getTime();
this._date.setTime(this._date.getTime() + offset);
this._fetched = now;
return this._date;
}
now.getDay()
月の日ではなく、曜日を返すことに注意してください。したがって、now.getDate()
そこまでです。(固定のハードコードされたものの代わりに基準日を使用するように編集されました)。