微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript实现简易的天数计算器实例【附demo源码下载】

本文实例讲述了JavaScript实现简易的天数计算器。分享给大家供大家参考,具体如下:

运行效果图如下:

功能

1. 支持选择日期; 2. 自动计算闰年; 3. 支持使用当前日期。

代码

(1)html文件

rush:xhtml;"> <Meta charset="UTF-8"> 简易天数计算器

(2)外部js文件

rush:js;"> /** * dayCounter. * Created by Jack on 16-11-29. */ /** * 通过元素的id获取Element. * @param arr id数组. */ function getElements(arr) { var elements = []; for (var i = 0; i < arr.length; i++) { elements.push(document.getElementById(arr[i])); } return elements; } //初始化年月日 function initView(arr) { var elements = getElements(arr); //年 for (var i = 2048; i >= 1949; i--) { var option = document.createElement("option"); option.setAttribute("value","" + i); option.appendChild(document.createTextNode("" + i)); //认选中2017年 if (i == 2017) { option.setAttribute("selected","selected") } elements[0].appendChild(option); } //月 for (var a = 1; a <= 12; a++) { var optionM = document.createElement("option"); optionM.setAttribute("value","" + a); optionM.appendChild(document.createTextNode((a < 10 ? "0" : "") + a)); elements[1].appendChild(optionM); } //日 initDay(elements[2],31,1); } function initDay(day,dayCount,selectedValue) { for (var i = 1; i <= dayCount; i++) { var optionD = document.createElement("option"); optionD.setAttribute("value","" + i); if (i == selectedValue) { optionD.setAttribute("selected","selected"); } optionD.appendChild(document.createTextNode((i < 10 ? "0" : "") + i)); day.appendChild(optionD); } } //当年和月发生变化时,更新日 function updateDaySelect(arr) { var elements = getElements(arr); //选中年 var y = elements[0].options[elements[0].selectedIndex].value; //选中月 var m = elements[1].options[elements[1].selectedIndex].value; if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) { setupDay(elements[2],31); } else if (m == 4 || m == 6 || m == 9 || m == 11) { setupDay(elements[2],30); } else { //判断是否为闰年 if ((y % 4 == 0 && y % 100 != 0 ) || y % 400 == 0) { setupDay(elements[2],29); } else { setupDay(elements[2],28); } } } //更新 日 select元素 function setupDay(day,dayCount) { //判断是否需要刷新 if (day.options.length == dayCount) { //无需刷新 return; } //原来选中的 日 var oldValue = day.options[day.selectedIndex].value; if (oldValue > dayCount) { oldValue = dayCount; } //首先移除所有子元素 for (var i = day.childNodes.length - 1; i >= 0; i--) { day.removeChild(day.childNodes.item(i)) } //添加元素 initDay(day,oldValue); } function getSelectedText(ele) { return ele.options[ele.selectedindex].text; } function getDateStr(arr) { var elements = getElements(arr); return getSelectedText(elements[0]) + "/" + getSelectedText(elements[1]) + "/" + getSelectedText(elements[2]); } /** * 计算天数,日期格式为 2016/08/09 * @param startDay 开始日期 * @param endDay 结束日期 */ function calDayCount(startDay,endDay) { var s = new Date(startDay + " 00:00:00").getTime(); var e = new Date(endDay + " 00:00:00").getTime(); return (e - s) / 86400000; } function getTodayYMD() { var date = new Date(); return [date.getFullYear(),date.getMonth(),date.getDate()]; }

完整demo实例代码点击此处本站下载

PS:这里再为大家推荐几款比较实用的天数计算在线工具供大家使用:

在线日期/天数计算器:

在线日期计算器/相差天数计算器:

在线日期天数差计算器:

在线天数计算器:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》及《

希望本文所述对大家JavaScript程序设计有所帮助。

原文地址:https://www.jb51.cc/js/42393.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐