Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从日期开始,我只想在javascript/angularjs中减去1天_Javascript_Angularjs Directive - Fatal编程技术网

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

从日期开始,我只想在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

在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()
获取日期,然后从中减去,然后使用
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));