js如何通过末次月经日期计算预产日期

计算方式有两种

1)直接添加280天

2)添加10月8天(参数传递,可用改成9月7天等)

js中引入文件

<script src="js/jquery.min.js"></script> 

html添加标签

 末次月经日期: <input type="date" id="MenstrualDate"  onchange="MenstruDateChange()" /> <br/>
   预产日期1: <input type="date" id="ProductDate1"/> <br/>
   预产日期2: <input type="date" id="ProductDate2"/> <br/>

js添加方法

        //预产日期改变事件
        var MenstruDateChange = function ()
        {
            //获取末次月经日期
            var menstruDate = $('#MenstrualDate').val();
            //计算预产日期(方法一)
            var productDate1 = addDate1(menstruDate,280);
            //计算预产日期(方法二)
            var productDate2 = addDate2(menstruDate, 10, 8);
            //设置预产日期
            $('#ProductDate1').val(productDate1);  
            $('#ProductDate2').val(productDate2);         
        }

        ///计算预产日期(方法一)
        //参数1:要转化日期
        //参数2:要添加的天数
        //注:(减去多少天,直接传递负数值)
        function addDate1(date, days)
        {
            //转化为日期对象
            var d = new Date(date);
            //设置日期(原有日期+增加的天数)
            d.setDate(d.getDate() + days);
            //获取计算后日期的年份
            var year = d.getFullYear();
            //获取计算后日期的月份
            var month = d.getMonth() + 1;
            //获取计算后日期的天数(多少号)
            var day = d.getDate();
            //拼接成日期格式
            var dateStr = year + '-' + getFormatDate(month) + '-' + getFormatDate(day);
            return dateStr;
        }

        //计算预产日期(方法二)
        //参数1:要转化的日期
        //参数2:增加的月份
        //参数3:增加的天数
        function addDate2(date, months, days) {
            //转化为日期对象
            var d = new Date(date);
            //设置日期(原有月份+增加的月份)
            d.setMonth(d.getMonth() + months);
            //设置日期(原有日期+增加的天数)
            d.setDate(d.getDate() + days);
            //获取计算后日期的年份
            var year = d.getFullYear();
            //获取计算后日期的月份
            var month = d.getMonth() + 1;
            //获取计算后日期的天数(多少号)
            var day = d.getDate();
            //拼接成日期格式
            var dateStr = year + '-' + getFormatDate(month) + '-' + getFormatDate(day);
            return dateStr;
        }

        //格式化日期的月份或天数的显示(小于10,在前面增加0)
        function getFormatDate(value) {
            if (value == undefined || value == "") {
                return '';
            }
            var str = value;
            if (parseInt(value) < 10) {
                str = '0' + value;
            }
            return str;
        }

显示效果图:

原文地址:https://www.cnblogs.com/xielong/p/8064602.html