请帮忙。我试过这段代码,但我无法改变它的格式。我需要日期接受格式YYYY / MM / DD
<script type="text/javascript">
function ageCount() {
var date1 = new Date();
var dob = document.getElementById("dob").value;
var date2 = new Date(dob);
var pattern = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
//Regex to validate date format (dd/mm/yyyy)
if (pattern.test(dob)) {
var y1 = date1.getFullYear();
//getting current year
var y2 = date2.getFullYear();
//getting dob year
var age = y1 - y2;
//calculating age
document.getElementById("ageId").value = age;
doucment.getElementById("ageId").focus();
return true;
} else {
alert("Invalid date format. Please Input in (dd/mm/yyyy) format!");
return false;
}
}
</script>
答案 0 :(得分:0)
就这样吧 javascript date manipulation library [closed]
我写了一个名为moment.js的javascript日期库
https://github.com/moment/moment
它创建日期包装器对象,以便它不必修改 Date.prototype。
它包括从字符串,日期对象和unix时间戳进行解析。
它可以根据替换模式进行格式化(“dddd,MMMM Do YYYY, h:mm:ss a“)还包括time ago(”2天前“,6个月前”)
答案 1 :(得分:0)
您只需要从
更改正则表达式var pattern = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
到
var pattern = /^\d{4}-\d{1,2}-\d{1,2}$/;
它应该这样做。
点击此处:http://jsfiddle.net/fP875/
<强> 警告 强>
但请记住,你使用的正则表达式并不完全正确。你需要一个更精确的正则表达式来检查日期。
您的正则表达式将接受2014-23-56或9999-99-99等日期。
我会建议:https://stackoverflow.com/a/18759740/3603806 如果您需要准确的日期而不仅仅是格式化。