new Date(new Date().setHours(new Date().getHours() - 4))
これは 1970 の日付と時刻を返します。私がやりたいのは、今日の日付が 2013 年 8 月 19 日で、時刻が午前 5 時なので、2013 年 8 月 19 日の日付をそのまま取得したいのですが、午前 5 時ではなく午前 1 時になりたいということです。助けていただければ幸いです
new Date(new Date().setHours(new Date().getHours() - 4))
これは 1970 の日付と時刻を返します。私がやりたいのは、今日の日付が 2013 年 8 月 19 日で、時刻が午前 5 時なので、2013 年 8 月 19 日の日付をそのまま取得したいのですが、午前 5 時ではなく午前 1 時になりたいということです。助けていただければ幸いです
このようにするのは安全ではありません。午前 03:00 はどうですか? -1 を返します。
でそれを行うdate.getTime()
:
var d=new Date();
var time=d.getTime();
console.log(d);
time = time - 4*1000*60*60;
d=new Date(time);
console.log(d);
現在の時刻から 4 時間相当のミリ秒を差し引くだけです。
var oneHour = 1000 * 60 * 60;
var fourHoursAgo = new Date( Date.now() - ( oneHour * 4 ) );
また
var oneHour = 1000 * 60 * 60;
var fourHoursAgo = new Date( ( new Date().getTime() ) - ( oneHour * 4 ) );
これを試して
var date1 = new Date();
var date2 = new Date();
date2.setHours(date1.getHours() - 4);
console.log(date1);
console.log(date2);
JS Fiddle デモ: http://jsfiddle.net/satpalsingh/7pypu/
詳細については、http ://www.w3schools.com/jsref/jsref_obj_date.asp をご覧ください。