javascript中的过去日期永远不会显示正确的结果

javascript中的过去日期永远不会显示正确的结果,javascript,date,dom,Javascript,Date,Dom,我需要过去几天的“YYYY-mm-dd”格式的日期。 我写这个函数: function getDifDate(d, numd) { d = stringToDate(d); d.setDate(d.getDate() - numd); return d; } 然后在程序的另一部分我写: var tod = new Date(); switch(selPer.value) { case 1: x= getDifDat

我需要过去几天的“YYYY-mm-dd”格式的日期。 我写这个函数:

function getDifDate(d, numd) {
 d = stringToDate(d);
 d.setDate(d.getDate() - numd);
 return d;
}
然后在程序的另一部分我写:

var tod = new Date();
switch(selPer.value) {
            case 1:         
                x= getDifDate(tod, 2);
                break;
            case 2:
                x= getDifDate(tod, 15);
                break;
            default:
                //default code block
        }
        console.log("Data1: "+ x);
但是x值,例如,如果我今天启动我的脚本,将返回“25”

怎么了

提前感谢使用DateJS库

    Date.today().addDays(-1);
文件:

正在工作的JSFIDLE:

使用DateJS库

    Date.today().addDays(-1);
文件:

正在工作的JSFIDLE:

使用DateJS库

    Date.today().addDays(-1);
文件:

正在工作的JSFIDLE:

使用DateJS库

    Date.today().addDays(-1);
文件:


一个正在工作的JSIDLE:

即使没有DateJS,它也可以正常工作

function getDifDate(d, numd) {
 d.setDate(d.getDate() - numd);
 return d;
}

var x;
var tod = new Date();
switch(1) {
            case 1:         
                x= getDifDate(tod, 2);
                break;
            case 2:
                x= getDifDate(tod, 15);
                break;
            default:
                //default code block
        }

console.log("Data1: ", x);

检查此插件:

即使没有DateJS,也可以正常工作

function getDifDate(d, numd) {
 d.setDate(d.getDate() - numd);
 return d;
}

var x;
var tod = new Date();
switch(1) {
            case 1:         
                x= getDifDate(tod, 2);
                break;
            case 2:
                x= getDifDate(tod, 15);
                break;
            default:
                //default code block
        }

console.log("Data1: ", x);

检查此插件:

即使没有DateJS,也可以正常工作

function getDifDate(d, numd) {
 d.setDate(d.getDate() - numd);
 return d;
}

var x;
var tod = new Date();
switch(1) {
            case 1:         
                x= getDifDate(tod, 2);
                break;
            case 2:
                x= getDifDate(tod, 15);
                break;
            default:
                //default code block
        }

console.log("Data1: ", x);

检查此插件:

即使没有DateJS,也可以正常工作

function getDifDate(d, numd) {
 d.setDate(d.getDate() - numd);
 return d;
}

var x;
var tod = new Date();
switch(1) {
            case 1:         
                x= getDifDate(tod, 2);
                break;
            case 2:
                x= getDifDate(tod, 15);
                break;
            default:
                //default code block
        }

console.log("Data1: ", x);

检查此plunker:

嗨,我不需要两个日期之间的差异,我只需要从todaydate SomeNumberOfDays生成的日期值stringToDate函数做什么?您正在将一个日期值传递到getDifDate中,然后它看起来像是您试图用d=stringToDate(d)将其从字符串转换为日期;你不需要这样做嗨,我不需要两个日期之间的差异,我只需要从todaydate someNumberOfDays得到的日期值stringToDate函数做什么?您正在将一个日期值传递到getDifDate中,然后它看起来像是您试图用d=stringToDate(d)将其从字符串转换为日期;你不需要这样做嗨,我不需要两个日期之间的差异,我只需要从todaydate someNumberOfDays得到的日期值stringToDate函数做什么?您正在将一个日期值传递到getDifDate中,然后它看起来像是您试图用d=stringToDate(d)将其从字符串转换为日期;你不需要这样做嗨,我不需要两个日期之间的差异,我只需要从todaydate someNumberOfDays得到的日期值stringToDate函数做什么?您正在将一个日期值传递到getDifDate中,然后它看起来像是您试图用d=stringToDate(d)将其从字符串转换为日期;您不需要再次返回“25”,而不是2014-08-25,只是再次返回“25”,而不是2014-08-25,只是再次返回“25”,而不是2014-08-25,只是再次返回“25”,而不是2014-08-25,只是再次返回“25”,而不是2014-08-25,只是25