2015-06-08 183 views
-1

我有一個要求,我需要找到在文本字段中輸入的日期不應低於當前日期和未來日期不應該超過1年後的準確日期從eentered date.I編碼爲前一個,但我後來要求我做不到。 我已經發布了檢查時間少於當前日期的代碼。請檢查輸入日期是否超過1年後的日期。javascript日期驗證,以檢查它是否超過下一年的日期

var currentDate = new Date(); 
var nextDate = new Date(); 

function checkLessThanCurrentDate() { 
    //var dateEntered = arguments[0]; -->Will have date that come form textfield 
    var day = dateEntered.split("/")[0]; 
    var month = dateEntered.split("/")[1]; 
    var year = dateEntered.split("/")[2]; 
    //--->Logic for chekcing date less than current date 
    if ((year < currentDate.getFullYear() || (month - 1 < currentDate.getMonth() && 
    year <= currentDate.getFullYear()) || ((day < currentDate.getDate()) && (month - 
    1 <= currentDate.getMonth()) && 
    (year <= currentDate.getFullYear())))) { 
     return true; 
    } 

    else { 
     return false; 
    } 
} 
+0

好了,你就必須做同樣的比較,但替換「當前日期」的「當前日期+ 1年」 ... –

回答

1

以下是如何從現在起一年之日期:

var now = new Date(); 
var oneYear = new Date(); 
var oneYear.setYear(now.getFullYear() + 1); 

if (dateEntered > oneYear) { 
    // logic 
} 
+0

如果當前日期是8/06/2015,它會準確驗證2016年6月9日或1/1/2016 –

+0

您是否嘗試運行代碼? –

1

我想,這應該對您的要求的工作:

function isValidDate(dateToCheck) 
{ 
    return isLessThanYearFromToday(dateToCheck) && dateToCheck >= new Date(); 
} 

function isLessThanYearFromToday(dateToCheck) 
{ 
    var yearFromToday = new Date(); 
    yearFromToday.setFullYear(yearFromToday.Year + 1); 
    return dateToCheck <= yearFromToday; 
} 
0

你需要使用.getTime()方法。 .getTime() return the time in millisonds

var toDayDate = new Date(); 
var enteredDate = new Date('06/09/2015');  // mm/dd/yyyy formate 

if(toDayDate.getTime()<enteredDate.getTime() && toDayDate.getTime()+(365*24*60*60*1000) > enteredDate.getTime()){ 
    alert(); 
} 

DEMO