计算方式有两种
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; }
显示效果图: