从日期开始,我只想在javascript/angularjs中减去1天
在new Date()的帮助下,我如何才能做到这一点。 我的代码:从日期开始,我只想在javascript/angularjs中减去1天,javascript,angularjs-directive,Javascript,Angularjs Directive,在new Date()的帮助下,我如何才能做到这一点。 我的代码: var temp =new Date("October 13, 2014 22:34:17"); console.log(new Date(temp-1)); 要求: before: Aug 4, 2014 11:59pm (EDT) after: Aug 3, 2014 11:59pm (EDT) 您需要指定要减去的时间量。现在是1,但是1什么?因此,尝试使用getDate()获取日期,然后从中减去,然后使用setDa
var temp =new Date("October 13, 2014 22:34:17");
console.log(new Date(temp-1));
要求:
before: Aug 4, 2014 11:59pm (EDT)
after: Aug 3, 2014 11:59pm (EDT)
您需要指定要减去的时间量。现在是1,但是1什么?因此,尝试使用
getDate()
获取日期,然后从中减去,然后使用setDate()
设置日期
例如
简单的答案是,你想从中减去一天的毫秒。下面是这样的
var today = new Date('October 13, 2014 22:34:17');
var yesterday = new Date(today.getTime() - (24*60*60*1000));
console.log(yesterday);
问题是,这确实让你提前了24小时,但由于夏令时的变化,这并不总是提前一天。如果这是你想要的,好吧。如果您想要更复杂的东西,请查看您只需从今天的日期中减去一天,如下所示:
var yesterday = new Date(new Date().setDate(new Date().getDate()-1));
昨天刚做的可能重复。设置小时数(23,59,59999)以在午夜获取昨天的日期。毫秒(1/1000),而不是微秒(1/1000000)。这会导致夏季/冬季时间减法的问题!正如答案中所指出的:“这确实让你提前了24小时,但由于夏令时(美国夏令时的名称)的变化,这并不总是提前一天。”。但是,它适用于一些不需要减去一天的情况。这甚至适用于0和负数,非常好,谢谢!这个答案最有效,因为它继续支持像
.getFullYear()
这样的方法,而不需要任何额外的转换。
var yesterday = new Date(new Date().setDate(new Date().getDate()-1));