我正在尝试检查日期是否有效。如果我通过31/02/2018到新的日期,它将返回1987年3月3日星期二00:00:00 GMT + 0000(格林威治标准时间),因为31/02/2018不是真正的日期。那么如何将通过日期与新日期的返回日期进行比较?或者我完全以错误的方式解决这个问题。
function isDateValid() {
var dob = "31/02/1994",
isValidDate = false;
var reqs = dob.split("/"),
day = reqs[0],
month = reqs[1],
year = reqs[2];
var birthday = new Date(year + "-" + month + "-" + day);
if (birthday === "????") {
isValidDate = true;
}
return isValidDate;
}
答案 0 :(得分:2)
你可以通过这样做来获得每个月的最后一天;
var lastDay = new Date(month, year, 0).getDate();
在你的情况下;
function isDateValid(date){
var isValidDate = false;
var reqs = date.split("/"),
day = reqs[0],
month = reqs[1],
year = reqs[2],
lastDay = new Date(month, year, 0).getDate();
if(day > 0 && day <= lastDay)
isValidDate = true;
return isValidDate;
}
答案 1 :(得分:0)
这就是你要找的东西。我保持代码不变,坚持原始请求。
function isDateValid() {
var dob = "31/02/2018",
isValidDate = false;
var reqs = dob.split("/"),
day = reqs[0],
month = reqs[1],
year = reqs[2];
var birthday = new Date(year + "-" + month + "-" + day);
if (+year === birthday.getFullYear()&&
+day === birthday.getDate() &&
+month === birthday.getMonth() + 1) {
isValidDate = true;
}
return isValidDate;
}
console.log(isDateValid());