本文实例讲述了JavaScript实现简易的天数计算器。分享给大家供大家参考,具体如下:
运行效果图如下:
& lt; !DOCTYPE html> & lt; html lang=癳n”比; & lt; head> & lt;元charset=皍tf - 8”比; & lt; title>简易天数计算器& lt;/title> & lt;脚本type=" text/javascript " src=" https://www.yisu.com/zixun/dayCounter.js "祝辞& lt;/script> & lt;/head> & lt; body> & lt; form> 开始日期 & lt;选择id=澳辍痹? & lt;/select> 年 & lt;选择id="月"比; & lt;/select> 月 & lt;选择id="天"在 & lt;/select> 日 & lt;输入类型=案囱】颉眎d=皊tartCb”在使用当前日期 & lt; br/比; 结束日期 & lt;选择id=皔ear2”比; & lt;/select> 年 & lt;选择id=癿onth3”比; & lt;/select> 月 & lt;选择id=癲ay2”比; & lt;/select> 日 & lt;输入类型=案囱】颉眎d=癳ndCb”在使用当前日期 & lt; br/比; & lt; br/比; & lt;/form> & lt; button>计算天数& lt;/button> & lt; p id=" dayCountText "祝辞& lt;/p> & lt;脚本type=" text/javascript祝辞/* * *根据年和月更新日列表。 * @param国旗1 -开始日期2 -结束日期 */函数更新(国旗){ 如果(标志==1){ updateDaySelect([‘年’,‘月’,'天']); 其他}{ updateDaySelect ([‘year2’,‘month3’, ' day2 ']); } }//计算天数 函数calDays (id) { var s=getDateStr([‘年’,‘月’,'天']); var e=getDateStr ([‘year2’,‘month3’, ' day2 ']); . getelementbyid (id)。innerHTML=calDayCount (s、e); }//使用当前日期作为开始日期 函数useTodayAsStart () { 检查var=. getelementbyid (startCb)支票; useToday(检查); }//使用当前日期作为结束日期 函数useTodayAsEnd () { 检查var=. getelementbyid (endCb)支票; useToday(2,检查); }/* * *使用当前日期。 * @param国旗1 -开始日期2 -结束日期 * @param检查真的——使用当前时期错:取消使用当前日期 */检查函数useToday(国旗){ var元素; 如果(标志==1){ 元素=getElements([‘年’,‘月’,'天']); 其他}{ 元素=getElements ([‘year2’,‘month3’, ' day2 ']); } 如果检查(){//使用当前日期 var ymd=getTodayYMD (); var;//设置年 var yEle=[0]元素; (=0;& lt;yEle.options.length;+ +){ 如果(yEle.options [a]。值=https://www.yisu.com/zixun/=ymd [0]) { yEle.options [a]。选择=把≡瘛? 打破; } }//设置月 var mEle=元素[1]; (=0;& lt;mEle.options.length;+ +){ 如果(mEle.options [a]。值=https://www.yisu.com/zixun/=ymd [1] + 1) { mEle.options [a]。选择=把≡瘛? 打破; } }//根据年和月更新日列表 更新(国旗);//设置日 var削除=元素[2]; (=0;& lt;dEle.options.length;+ +){ 如果(dEle.options [a]。值=https://www.yisu.com/zixun/=ymd [2]) { dEle.options [a]。选择=把≡瘛? 打破; } } } (var=0;我& lt;elements.length;我+ +){ 元素[我]。禁用=检查& # 63;“禁用”:定义; } } & lt;/script> & lt;/body> & lt;/html> >之前
(2)外部js文件:
/* * * dayCounter。 *由杰克16-11-29。 *//* * *通过元素的id获取元素。 * @param arr id数组。 */函数getElements (arr) { var元素=[]; (var=0;我& lt;arr.length;我+ +){ elements.push (. getelementbyid (arr[我])); } 返回元素; }//初始化年月日 函数initView (arr) { var=getElements元素(arr);//年 (var=2048;我在=1949;我(){ var=document.createElement选项(“选项”); 选择。setAttribute(“价值””、“+ i); option.appendChild(文档。createTextNode (" + i));//默认选中2017年 如果(i==2017) { 选择。setAttribute(“选择”,“选择”) } 元素[0].appendChild(选项); }//月 (var=1;& lt;=12;+ +){ var optionM=document.createElement(“选项”); optionM。setAttribute(“价值”、“" +); optionM.appendChild(文档。createTextNode ((& lt;10 & # 63;" 0 ":" ")+)); 元素[1].appendChild (optionM); }//日 initDay(元素[2],31日1); } 函数initDay(天,dayCount selectedValue) { (var i=1;我& lt;=dayCount;我+ +){ var optionD=document.createElement(“选项”); optionD。setAttribute(“价值””、“+ i); 如果(i==selectedValue) { optionD。setAttribute(“选择”,“选择”); } optionD.appendChild(文档。createTextNode((我& lt;10 & # 63;“0”:“”)+ i)); day.appendChild (optionD); } }//当年和月发生变化时,更新日 函数updateDaySelect (arr) { var=getElements元素(arr);//选中年 var y=元素[0].options[元素[0].selectedIndex] value;//选中月 var m=元素[1].options[元素[1].selectedIndex] value; 如果(m==1 | | 3 m==| | m==5 | | 7 m==| | 8 m==| | 10 m==| | m==12) { setupDay(元素[2],31); }else if (m==4 | | 6 m==| | 9 m==| | m==11) { setupDay(元素[2],30); 其他}{//判断是否为闰年 如果(y % 4==0,,y % 100 !=0) | | y % 400==0) { setupDay(元素[2],29); 其他}{ setupDay(元素[2],28); } } }//更新日选择元素 函数setupDay(天,dayCount) {//判断是否需要刷新 如果(day.options。长度==dayCount) {//无需刷新 返回; }//原来选中的日 var oldValue=https://www.yisu.com/zixun/day.options [day.selectedIndex] value; 如果(oldValue> dayCount) { oldValue=dayCount; }//首先移除所有子元素 我(var=day.childNodes。长度- 1;我>=0;我(){ day.removeChild (day.childNodes.item(我)) }//添加元素 initDay(天,dayCount oldValue); } 函数getSelectedText(避署){ 返回ele.options [ele.selectedIndex]。text; } 函数getDateStr (arr) { null null null null null null null null null null null null null null null null null null null null null null null null null null null nullJavaScript实现简易的天数计算器实例【附演示源码下载】