Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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 从完整日期中减去一天_Javascript_Jquery - Fatal编程技术网

Javascript 从完整日期中减去一天

Javascript 从完整日期中减去一天,javascript,jquery,Javascript,Jquery,我需要从日期的字符串值中减去1天, 例如,当我从2017/01/01减去一天而不是2016/12/31时,我得到的值是2017/0/31 下面是我正在编写的代码: var inputDate = "2017/01/01"; var splitClndr = inputDate.value.split("/"); var clndrDate = new Date(splitClndr[0], split

我需要从日期的字符串值中减去1天, 例如,当我从2017/01/01减去一天而不是2016/12/31时,我得到的值是2017/0/31

下面是我正在编写的代码:

                var inputDate = "2017/01/01";
                var splitClndr = inputDate.value.split("/");
                var clndrDate = new Date(splitClndr[0], splitClndr[1], splitClndr[2]);
                clndrDate.setDate(clndrDate.getDate() - 1);
                var nd = new Date(clndrDate);
                var dd = nd.getDate();
                var mm = nd.getMonth();
                var y = nd.getFullYear();
                var newFormattedDate = y + '/'+ mm + '/'+ dd;
                operatorDate.value = newFormattedDate;

我在变量newFromattedDate中得到的值是2017/0/31,如何将一天减到2016/12/31?

javascript中的月份是以零为基础的,因此
0
是一月:

new Date(2017, 1, 1) >> Wed Feb 01 2017
在创建
clndrDate
和连接字符串时,都需要对此进行补偿

new Date(splitClndr[0], splitClndr[1]-1, splitClndr[2])

...

var mm = nd.getMonth()+1;

您可以直接从日期中减去:

var d = new Date('2017/01/01');
d.setDate(d.getDate() - 1);
var newDateString = d.toLocaleDateString();
console.log(newDateString);

您可以使用
setDate
方法减去所需天数

var inputDate = "2017/01/01"; 
var newDate = new Date(inputDate); 
newDate.setDate(newDate.getDate() - 1);
console.log(newDate);
试试这个

   var inputDate = "2017/01/01";
   var splitClndr = inputDate.split("/");
   var clndrDate = new Date(splitClndr[0], splitClndr[1] - 1, splitClndr[2]);
   var past_time = clndrDate.getTime() - 1000 * 60 * 60 * 24 * 1; // last 1 will be day
   clndrDate.setTime(past_time);
   console.log(clndrDate);

正在工作。

月份是以零为基础的。。。将一个添加到
nd.getMOnth()
-您还需要从
splitClndr[1]