这两个堆栈溢出问题提出了类似的问题,但他们的解决方案似乎对我不起作用: Javascript昨天 用于显示昨天日期和今天日期的Javascript代码
给定日期,我需要前一天的日期(前一天).这里有一个上面提到的解决方案的小提琴,以及一个对我不起作用的场景:http: //jsfiddle.net/s3dHV/
var date = new Date('04/28/2013 00:00:00');
var yesterday = new Date();
yesterday.setDate(date.getDate() - 1);
alert('If today is ' + date + ' then yesterday is ' + yesterday);
Run Code Online (Sandbox Code Playgroud)
对我来说,那个警报
如果今天是2013年4月28日星期日00:00:00 GMT-0400(东部夏令时间),那么昨天是2013年5月27日星期一11:12:06 GMT-0400(东部夏令时间).
这显然是不正确的.为什么?
Poi*_*nty 38
你正在创造一个全新的约会.
var yesterday = new Date(date.getTime());
yesterday.setDate(date.getDate() - 1);
Run Code Online (Sandbox Code Playgroud)
那会让你复制第一次约会.当你打电话时setDate(),它只会影响当天,而不是整个事情.如果您从原始日期的副本开始,然后设置月份的日期,您将得到正确的答案.
试试这个:
var date = new Date('04/28/2013 00:00:00');
var yesterday = new Date(date.getTime() - 24*60*60*1000);
Run Code Online (Sandbox Code Playgroud)