Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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中,如何获取日期';2010年2月27日&x27;通过但';2010年2月31日&x27;失败?_Javascript - Fatal编程技术网

在javascript中,如何获取日期';2010年2月27日&x27;通过但';2010年2月31日&x27;失败?

在javascript中,如何获取日期';2010年2月27日&x27;通过但';2010年2月31日&x27;失败?,javascript,Javascript,当我输入'02/27/2010'时,它不是NaN。另外,当我输入'02/31/2010'时,当我使用Date和getDate(“mydate”)函数时,它也不是NaN。它会把这个改到三月三号吗 是否有一种方法可以确定该日期是否为真实日期,而不增加跳转到下一个月或下一年的天数 谢谢, Marc你可以在javascript中签出所有的日期操作。你可以在javascript中签出所有的日期操作。从我的判断,这似乎就是答案。从我的判断,这似乎就是答案。这是一种方法: String.prototype

当我输入'02/27/2010'时,它不是NaN。另外,当我输入'02/31/2010'时,当我使用Date和getDate(“mydate”)函数时,它也不是NaN。它会把这个改到三月三号吗

是否有一种方法可以确定该日期是否为真实日期,而不增加跳转到下一个月或下一年的天数

谢谢, Marc

你可以在javascript中签出所有的日期操作。

你可以在javascript中签出所有的日期操作。

从我的判断,这似乎就是答案。

从我的判断,这似乎就是答案。

这是一种方法:

  String.prototype.isValidDate = function(){
    var arrDate = this.split("/");
    if(arrDate.length!=3)return false;
    var month = parseInt(arrDate[0],10);
    var day = parseInt(arrDate[1],10);
    var year = parseInt(arrDate[2],10);                                  
    var dateComp = new Date(year, month-1, day);
    return (month == dateComp.getMonth()+1 &&
            day == dateComp.getDate() && 
            year == dateComp.getFullYear());
  };

  alert("2/1/2011".isValidDate());  
  alert("2/31/2011".isValidDate());
  alert("02/01/2011".isValidDate());
这是一种方法:

  String.prototype.isValidDate = function(){
    var arrDate = this.split("/");
    if(arrDate.length!=3)return false;
    var month = parseInt(arrDate[0],10);
    var day = parseInt(arrDate[1],10);
    var year = parseInt(arrDate[2],10);                                  
    var dateComp = new Date(year, month-1, day);
    return (month == dateComp.getMonth()+1 &&
            day == dateComp.getDate() && 
            year == dateComp.getFullYear());
  };

  alert("2/1/2011".isValidDate());  
  alert("2/31/2011".isValidDate());
  alert("02/01/2011".isValidDate());

//

function isvalid_mdy(s){
    var day, A= s.split(/\D+/).map(function(itm,i){return parseInt(itm,10)});
    A[0]-=1;
    try{
        day= new Date(A[2], A[0], A[1]);
        if(day.getMonth()== A[0] && day.getDate()== A[1]) return day;
        throw 'Bad Date ';
    }
    catch(er){
        return NaN;
    }
}
function isvalid_dmy(s){
    var day, A= s.split(/\D+/).map(function(itm,i){return parseInt(itm,10)});
    A[1]-=1;
    try{
        day= new Date(A[2], A[1], A[0]);
        if(day.getMonth()== A[1] && day.getDate()== A[0]) return day;
        throw 'Bad Date ';
    }
    catch(er){
        return NaN;
    }
}
//


@鲁迪,当然,这取决于要求是什么。有时候,26KB的代码比写2KB的蹩脚javascript代码要好得多,这些代码在73%的情况下有效,在其他27%的情况下会中断,我们需要维护,只有作者和上帝才能做到。这一点非常好。这要看情况而定。我已将网站保存到ma favs=)@Rudie,当然,这取决于要求。有时候,26KB的代码比写2KB的蹩脚javascript代码要好得多,这些代码在73%的情况下有效,在其他27%的情况下会中断,我们需要维护,只有作者和上帝才能做到。这一点非常好。这要看情况而定。我已将网站保存到ma favs=),它只会说如果它是有效的日期对象,它不会验证提供的日期是否与用户输入的日期相同。这只会说如果它是有效的日期对象,它不会验证提供的日期是否与用户输入的日期相同。