我正在比较javascript中的两个日期
function checkCurrentDate(expiryDate){
//var currentDateStr=expiryDate;
var currentDate = new Date();
var month = currentDate.getMonth() + 1;
var day = currentDate.getDate();
var year = currentDate.getFullYear();
currentDate = month + "/" + day + "/" + year;
var dArr = currentDate.split("/");
currentDate = dArr[0]+ "/" +dArr[1]+ "/" +dArr[2].substring(2);
var currentExpiryDateStr = expiryDate;
if(currentExpiryDateStr == currentDate){
}
if(currentExpiryDateStr < currentDate){
alert("Expiry date is earlier than the current date.");
return false;
}
}
目前日期在“currentExpiryDateStr”中是“11/10/12”,“currentDate”是“11/8/12”现在在这种情况下“if(currentExpiryDateStr&lt; currentDate)”返回true并进入在if条件但是这个条件应该返回false并且不应该输入if if条件。它以前工作但不知道为什么它现在不起作用。
答案 0 :(得分:0)
Date对象将执行您想要的操作 - 为每个日期构建一个,然后使用常用运算符进行比较。 试试这个..
function checkCurrentDate(expiryDate){
var currentDate = new Date(); // now date object
var currentExpiryDateStr = new Date(expiryDate); //expiry date object
if(currentExpiryDateStr == currentDate){
}
if(currentExpiryDateStr < currentDate){
alert("Expiry date is earlier than the current date.");
return false;
}
}
这里是小提琴:: http://jsfiddle.net/YFvAC/3/
答案 1 :(得分:0)
var currentDate = Date.now();
if (expiryDate.getTime() < currentDate ) {
alert("Expiry date is earlier than the current date.");
return false;
}
now()
方法返回自1970年1月1日00:00:00 UTC以来直到现在为止的毫秒数。
getTime()
返回自1970年1月1日午夜以来的毫秒数
答案 2 :(得分:0)
您正在比较字符串,您应该比较日期对象。
如果月份/日/年的格式为“11/10/12”,并且该年份是2000年后的两位数年份,则可以使用以下日期将其转换为日期:
function mdyToDate(dateString) {
var b = dateString.split(/\D/);
return new Date('20' + b[2], --b[0], b[1]);
}
要测试到期时间,您可以执行以下操作:
function hasExpired(dateString) {
var expiryDate = mdyToDate(dateString);
var now = new Date();
return now > expiryDate;
}
所以2012年11月8日:
hasExpired('11/10/12'); // 10-Nov-2012 -- false
hasExpired('6/3/12'); // 03-Jun-2012 -- true
hasExpired
功能可替换为:
if (new Date() > mdyToDate(dateString)) {
// dateString has expired
}
答案 3 :(得分:-1)
只需在if条件
之前添加这两行currentExpiryDateStr=Date.parse(currentExpiryDateStr);
currentDate=Date.parse(currentDate);