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

Cod*_*iee 11 javascript angularjs-directive

在新的Date()的帮助下我如何实现这一目标.我的代码:

var temp =new Date("October 13, 2014 22:34:17");
console.log(new Date(temp-1));
Run Code Online (Sandbox Code Playgroud)

需求:

before: Aug 4, 2014 11:59pm (EDT)
after:   Aug 3, 2014 11:59pm (EDT)
Run Code Online (Sandbox Code Playgroud)

And*_*and 30

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

例如

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

  • 如果新日期是一个月的第一天,则此方法效果不佳。 (3认同)

Pri*_*ner 8

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

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

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


SKL*_*SKL 5

您可以简单地从今天的日期中减去一天,如下所示:

var yesterday = new Date(new Date().setDate(new Date().getDate()-1));
Run Code Online (Sandbox Code Playgroud)