日期选择框的Javascript验证

时间:2009-11-27 11:46:05

标签: javascript html

我创建了3个包含日,月和年的选择框。我真正想要的是在用户选择了一个日期之后进行检查,如果日期是从显示消息的当前日期开始超过一年。

我有点难过该做什么。任何指导都会很棒。

由于

3 个答案:

答案 0 :(得分:1)

var ddlYear = document.getElementById('ddlYear');
var ddlMonth = document.getElementById('ddlMonth');
var ddlDay = document.getElementById('ddlDay');

var y = ddlYear[ddlYear.selectedIndex];
var m = ddlMonth[ddlMonth.selectedIndex];
var d = ddlDay[ddlDay.selectedIndex];

// past
var dt = new Date((y+1), (m-1), d);
var moreThanOnYearAgo = dt < new Date();

// future
var dt2 = new Date((y-1), (m-1), d);
var moreThanOnYearAhead = dt2 > new Date();

y+1是因为如果我们添加一年,并且仍然低于new Date()(今天),那么就超过一年了。

m-1是因为Date构造函数中的月份是枚举,这意味着1月份为0。

答案 1 :(得分:0)

一年有31556926000毫秒。只需将该日期转换为时间戳并从中提交当前日期即可。如果结果大于31556926000,则超过一年。

var userDate = new Date("11/29/2010");
var now      = new Date();
var year_ms  = 31556926000;

if ( userDate.getTime() - now.getTime() >= year_ms ) {
    // A year away
} else {
    // less than a year away
}

答案 2 :(得分:0)

不要再重新发明轮子。使用library that does validation