代码之家  ›  专栏  ›  技术社区  ›  AleMal

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

  •  0
  • AleMal  · 技术社区  · 11 年前

    我需要过去几天的“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”

    怎么了?

    提前感谢

    2 回复  |  直到 11 年前
        1
  •  2
  •   Jyoti Puri    11 年前

    即使没有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);
    

    检查此插件: http://plnkr.co/edit/gLwBIfAp7zFLEaV1KJ1O?p=preview

        2
  •  1
  •   michalh    11 年前

    使用DateJS库

        Date.today().addDays(-1);
    

    文档: https://code.google.com/p/datejs/wiki/APIDocumentation

    一个工作的jsFiddle: http://jsfiddle.net/vx1m67w1/1/