我创建了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。