2011-11-18 165 views
0

假設有兩個文本框,一個輸入日期,另一個輸入時間。下面是一個例子:在javascript中比較時間和日期

<p><strong>Date:</strong> <input type="text" id="datetxt"></p> 

Example of how date is displayed: 25-05-1995 

<p><strong>Time:</strong> <input type="text" id="timetxt"></p> 

Example of how time is displayed: 14:25 

有人建議可以在JavaScript的方式來比較文本框爲當前日期和時間日期和時間的值,因此,如果當前日期和時間是過去輸入的日期和時間在文本框中,那麼它應該顯示並提醒?

回答

1

試試這個

var dateParts = document.getElementById("datetxt").value.split("-"); 
var timeParts = document.getElementById("timetxt").value.split(":"); 

var valueDate = new Date(dateParts[2], (dateParts[1] - 1) ,dateParts[0], timeParts[0], timeParts[1]); 

if((new Date).getTime() > valueDate .getTime()) 
{ 
    alert("passed"); 
} 

活生生的例子:http://jsfiddle.net/TJEMr/

+0

這兩個答案很棒。謝謝。我已經爲這件事情做過了,因爲它適用於所有日期和時間。再次感謝你 – BruceyBandit

0

您需要按摩你的日期字符串爲compatible日期格式:

//datetxt textbox value, split on dashes 
var date = "25-05-1995".split("-"), 
    //timetxt textbox value 
    time = "14:25", 
    //put it into format: YYYY-MM-DDThh:mm and creates a date object from it 
    dateObj = new Date(date[2] + '-' + date[1] + '-' + date[0] + 'T' + time); 

//if today is greater than we have passed that DateTime 
if(new Date() > dateObj) { 
    alert("After entered date"); 
} else { 
    alert("Not passed yet!"); 
} 

工作例如:jsFiddle