如何在使用JS格式为YYYY-MM-DD填充生日后自动填充年龄字段

时间:2014-07-08 07:01:18

标签: javascript

请帮忙。我试过这段代码,但我无法改变它的格式。我需要日期接受格式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>

2 个答案:

答案 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 如果您需要准确的日期而不仅仅是格式化。

http://jsfiddle.net/EywSP/856/

http://jsfiddle.net/EywSP/854/