0
new Date(new Date().setHours(new Date().getHours() - 4))

这将返回 1970 的日期和时间。我想做的是说今天的日期是 2013 年 8 月 19 日,时间是凌晨 5 点,所以我想按原样获得日期,即 2013 年 8 月 19 日,但我希望时间是凌晨 1 点而不是 5 点。任何帮助将不胜感激

4

3 回答 3

1

试试这个

var date1 = new Date();
var date2 = new Date();

date2.setHours(date1.getHours() - 4);
console.log(date1);
console.log(date2);

JS 小提琴演示:http: //jsfiddle.net/satpalsingh/7pypu/

欲了解更多信息,请访问:http ://www.w3schools.com/jsref/jsref_obj_date.asp

于 2013-08-19T11:40:33.313 回答
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);

http://jsfiddle.net/G47Fh/1/

于 2013-08-19T11:43:11.140 回答
1

我只需从当前时间中减去 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 ) );
于 2013-08-19T11:43:20.517 回答