js计算两个日期间的天数月的实例代码


Posted in Javascript onSeptember 20, 2018

计算结果为几个月零几天

<html>
 <head>
  <title>计算天数月</title>
  <meta charset="GBK">
 <script type="text/javascript">
 function dateU(date1,date2){//date2-date1
 var y1=Number(date1.substr(0,4));//年
 var y2=Number(date2.substr(0,4));
 var m1=Number(date1.substr(4,2));//月
 var m2=Number(date2.substr(4,2));
 var ym1=Number(date1.substr(0,6));//年月
 var ym2=Number(date2.substr(0,6));
 var d1=Number(date1.substr(6,2));//日
 var d2=Number(date2.substr(6,2));
 var day=0;
 var month=0;
 var maxDay=[31,28,31,30,31,30,31,31,30,31,30,31];//当月最大天数
 var index=0;//maxDay的数组编号
 while(ym1<ym2){
  if(m1==12){
  m1=1;
  y1++;
  month++;
  }else{
  m1++;
  month++;
  }
  ym1=y1*100+m1;
 }//递增到年月相同时停止
 if(d2>=d1){//年月相同且日2>=日1
  day=d2-d1;
 }else{//年月相同且日2<日1,取上月最大天数计算
  month--;//最后月,不足一个月
  if(m2==1){//1月
  index=11;//取12月的
  }else if(m2==3){//2月
  index=1;
  //判断闰年否
  if(y2%100==0){
   if(y2%400==0){
   maxDay[1]=29;
   }
  }else if(y2%4==0){
   maxDay[1]=29;
  }
  }else{
  index=m2-1;
  }
  day=maxDay[index]-d1+d2;  
 }
 return month+"月零"+day+"天";
 }
 
 function showMonthDay(){
 var date1=document.getElementById("date1").value;
 var date2=document.getElementById("date2").value;
 alert(dateU(date1,date2));
 }
 </script>
 </head>
 <body>
   <div align="center"><br>
  开始日期:<input id="date1" value="20180707"></br>
  结束日期:<input id="date2" value="20201201"></br>
  <input type="button" onclick="showMonthDay()" value="计算">
  </div>
 <hr>
<i>
  Copyright (c) 2018 fhy</br>
  All Rights Reserved.
</i>
 </body>
</html>

下面在通过一段代码看下js计算两个日期差

function timeDifc(start,end){
  let starts = new Date(start),ends = new Date(end),message = '';
  if (starts.getTime() > ends.getTime())
    return message = "现在的时间小于以前的时间!";
  if ((ends.getTime() - starts.getTime())/(1000*60) < 1)
    return message = "刚刚";
  if (ends.getFullYear() > starts.getFullYear() && ends.getMonth() >= starts.getMonth())
    message += ends.getFullYear() - starts.getFullYear() + "年";
  if (ends.getMonth() > starts.getMonth() && ends.getDate() >= starts.getDate())
    message += ends.getMonth() - starts.getMonth() + "个月";
  if (ends.getDate() > starts.getDate() && ends.getHours() >= starts.getHours())
    message += ends.getDate() - starts.getDate() + "天";
  if (ends.getHours() > starts.getHours() && ends.getMinutes() >= starts.getMinutes())
    message += ends.getHours() - starts.getHours() + "小时";
  if (ends.getMinutes() > starts.getMinutes())
    message += ends.getMinutes() - starts.getMinutes() + "分钟";
  return message;
};
// 注:上边的变量是用let声明的(es6语法),下边是用babel编译后的
function timeDifc(start, end) {
  var starts = new Date(start),
    ends = new Date(end),
    message = '';
  if (starts.getTime() > ends.getTime()) return message = "现在的时间小于以前的时间!";
  if ((ends.getTime() - starts.getTime()) / (1000 * 60) < 1) return message = "刚刚";
  if (ends.getFullYear() > starts.getFullYear() && ends.getMonth() >= starts.getMonth()) message += ends.getFullYear() - starts.getFullYear() + "年";
  if (ends.getMonth() > starts.getMonth() && ends.getDate() >= starts.getDate()) message += ends.getMonth() - starts.getMonth() + "个月";
  if (ends.getDate() > starts.getDate() && ends.getHours() >= starts.getHours()) message += ends.getDate() - starts.getDate() + "天";
  if (ends.getHours() > starts.getHours() && ends.getMinutes() >= starts.getMinutes()) message += ends.getHours() - starts.getHours() + "小时";
  if (ends.getMinutes() > starts.getMinutes()) message += ends.getMinutes() - starts.getMinutes() + "分钟";
  return message;
};

在浏览器的console中测试结果如下:

js计算两个日期间的天数月的实例代码

总结

以上所述是小编给大家介绍的js计算两个日期间的天数月的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
基于jquery跨浏览器显示的file上传控件
Oct 24 Javascript
jquery实现倒计时效果
Dec 14 Javascript
Bootstrap学习笔记之css样式设计(2)
Jun 07 Javascript
浅谈Javascript中的12种DOM节点类型
Aug 19 Javascript
jquery checkbox的相关操作总结
Oct 17 Javascript
js倒计时小实例(多次定时)
Dec 08 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
Jan 06 Javascript
Javascript中数组去重与拍平的方法示例
Feb 03 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
Jan 17 Javascript
从0到1构建vueSSR项目之路由的构建
Mar 07 Javascript
详解搭建一个vue-cli的移动端H5开发模板
Jan 17 Javascript
vue实现全屏滚动效果(非fullpage.js)
Mar 07 Javascript
小程序scroll-view组件实现滚动的示例代码
Sep 20 #Javascript
详解swiper在vue中的应用(以3.0为例)
Sep 20 #Javascript
Vue框架里使用Swiper的方法示例
Sep 20 #Javascript
vue项目中跳转到外部链接的实例讲解
Sep 20 #Javascript
Vue常见面试题整理【值得收藏】
Sep 20 #Javascript
用vue-cli开发vue时的代理设置方法
Sep 20 #Javascript
CSS3 动画卡顿性能优化的完美解决方案
Sep 20 #Javascript
You might like
php下使用以下代码连接并测试
2008/04/09 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
简单的php文件上传(实例)
2013/10/27 PHP
php验证session无效的解决方法
2014/11/04 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
记录Django开发心得
2014/07/16 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
波兰补充商店:Muscle Power
2018/10/29 全球购物
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
乡镇交通安全实施方案
2014/03/29 职场文书
毕业生个人自荐书
2015/03/05 职场文书
革命电影观后感
2015/06/18 职场文书
校园之声广播稿
2015/08/18 职场文书
婚庆答谢词大全
2015/09/29 职场文书
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android
Win11怎么修改电源模式?Win11修改电源模式的方法
2022/04/05 数码科技