gpt4 book ai didi

javascript - 根据 dd/mm/yyyy 日期格式的出生日期计算年龄

转载 作者:太空宇宙 更新时间:2023-11-04 15:01:44 24 4
gpt4 key购买 nike

我想根据出生日期计算年龄。我可以很容易地为日期格式 mm/dd/yyyy 做这件事,但是当我尝试为 dd/mm/yyyy 做同样的事情时,我得到了 age = NaN。这是我的代码逻辑:

$('#DateOfBirth').datepicker({
onSelect: function (value, ui) {
var today = new Date(),
dob = new Date(value),

age = today.getFullYear() - dob.getFullYear(); //This is the update
$('#age').val(age);
alert(age);
},
//maxDate: "-16Y",
maxDate: maxDateVal,
showOn: "both",
buttonImage: "",
dateFormat: "dd/mm/yy",
changeMonth: true,
changeYear: true,
yearRange: '1920:c'

}).keydown(function (e) {
if (e.keyCode == 8 || e.keyCode == 46) {
$(e.target).val("");
} else {
e.preventDefault();
return false;
}
});

最佳答案

发生这种情况的原因是因为 new Date(ValueHere) 调用需要有效格式的 Date.parse()。有关详细信息,请参见下文。

适合您的解决方案,使用正则表达式。

代替:

dob = new Date(value),

使用:(针对您的特定格式进行编辑)

dob = new Date(value.replace(/(\d{2})[-/](\d{2})[-/](\d+)/, "$2/$1/$3"));

用于演示解决方案的精简 fiddle :(针对您的特定格式进行了更新)

http://jsfiddle.net/chrislewispac/e7zjskos/2/

来自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

和: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

新日期(dateString);

日期字符串:

表示日期的字符串值。该字符串应采用 Date.parse() 方法可识别的格式(符合 IETF 标准的 RFC 2822 时间戳以及 ISO8601 版本)。

日期字符串中的无效值无法识别为 ECMA-262 定义的 ISO 格式,可能会或可能不会导致 NaN,具体取决于浏览器和提供的值。

ECMA-262 日期标准链接:

http://www.ecma-international.org/ecma-262/6.0/index.html#sec-date-time-string-format

并链接到 StackOverflow 解决方案:

Convert dd-mm-yyyy string to date

关于javascript - 根据 dd/mm/yyyy 日期格式的出生日期计算年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33189789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com