我有一个日期字段,可以接受 month 是否为未知。然后根据输入的日期和当前日期和时间计算age
。
var birthDate = new Date("12 UNK 1995");
var now = new Date();
var age = now.getFullYear() - birthDate.getFullYear();
document.write("Your Age is: " + age);
如果运行,这将引发我 NaN
错误。我认为是因为该无效的日期格式。
即使仅基于 year , month 是未知,我有什么方法可以计算age
?有什么样的约会对象吗?
答案 0 :(得分:3)
如果不知道该月,则通常以编程方式将其设置为年中-七月。我在印度知道这个问题-有些人有时不知道他们的生日。
例如如下所示:
var month = "UNK"; // TODO: here is your code to get the month name from field
month = month == "UNK" ? "JUL" : month;
var birthDate = new Date("12 " + month + " 1995");
var now = new Date();
var age = now.getFullYear() - birthDate.getFullYear();
document.write("Your Age is: " + age);
但是请注意,您的计算并不是真正正确的,因为您没有使用完整的日期(天,月,年,小时,分钟)进行计算。
我的建议
但是我建议使用新的HTML5输入字段类型 date
(请参阅此链接),如下所示(将鼠标指针移到该字段上):>
<input name="birthdate" type="date" required>
所有用户都必须按照自己的职责填写此日期。在这种情况下,他们必须选择一个日期,您将对此没有责任。
答案 1 :(得分:1)
您已经在字符串中包含了年份,因此请从字符串中提取年份,然后从年份中减去。