从日期我只想在javascript / angularjs中减去1天

时间:2014-08-05 10:37:34

标签: javascript angularjs-directive

在新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)

3 个答案:

答案 0 :(得分:27)

您需要指定减去的时间。目前它的1,但1什么?因此,请尝试使用getDate()获取日期,然后从中减去日期,然后使用setDate()设置日期。

E.g。

var temp = new Date("October 13, 2014 22:34:17");
temp.setDate(temp.getDate()-1);

答案 1 :(得分:8)

简单的答案是你要从中减去几毫秒的天数。如下所示

var today = new Date('October 13, 2014 22:34:17');
var yesterday = new Date(today.getTime() - (24*60*60*1000));
console.log(yesterday);

这样做的问题在于,这确实提前了24小时,由于夏令时的变化等原因,这不会提前一天。如果这是你想要的,那很好。如果您想要更复杂的内容,请查看moment.js

答案 2 :(得分:0)

您可以像这样从今天开始减去一天:

var yesterday = new Date(new Date().setDate(new Date().getDate()-1));