用JavaScript检查日期

js-*_*der 7 javascript date

我通过用户输入得到三个变量,包含日期,月份和日期的年份.我已经检查了月份var是否在1-12之间,依此类推.

现在我想检查它是否是真实日期,而不是像31-06-2011那样不存在的日期.

我的第一个想法是创建一个新的Date实例:

var year = 2011;
var month = 5; // five because the months start with 0 in JavaScript - June
var day = 31;
var myDate = new Date(2011,5,31);
console.log(myDate);
Run Code Online (Sandbox Code Playgroud)

但myDate不会返回false,因为它不是有效日期.而是返回'2011年7月1日星期五[...]'.

我有什么想法可以检查无效日期吗?

Gau*_*rav 11

试试这个:

if ((myDate.getMonth()+1!=month)||(myDate.getDate()!=day)||(myDate.getFullYear()!=year))
    alert("Date Invalid.");
Run Code Online (Sandbox Code Playgroud)


Ser*_*lov 5

if ((myDate.getDate() != day) || 
    (myDate.getMonth() != month - 1) || 
    (myDate.getFullYear() != year))
{
    return false;
}
Run Code Online (Sandbox Code Playgroud)

JavaScript的只是转换在进入Date构造函数month,year,day,等.在简单的int值(毫秒),然后格式化它以字符串格式表示.你可以创建new Date(2011, 100, 100)和everythig将确定:)