2011-11-18 116 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