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 相关文章推荐
JS实现淘宝幻灯片效果的实现方法
Mar 22 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
Apr 02 Javascript
jQuery实现密保互斥问题解决方案
Aug 16 Javascript
jQuery检测输入的字符串包含的中英文的数量
Apr 17 Javascript
JavaScript中reduce()方法的使用详解
Jun 09 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
Jan 28 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
May 23 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
Nov 09 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
Jul 20 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
Apr 25 Javascript
js+canvas实现纸牌游戏
Mar 16 Javascript
JavaScript实现矩形块大小任意缩放
Aug 25 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禁止浏览器使用缓存页面的方法
2014/11/07 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
基于Vue生产环境部署详解
2017/09/15 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
2020/03/26 Javascript
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
Python最小二乘法矩阵
2019/01/02 Python
python图片指定区域替换img.paste函数的使用
2020/04/09 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
大学生个人求职信
2014/06/02 职场文书
师范生求职信
2014/06/14 职场文书
受伤赔偿协议书
2014/09/24 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
2014年图书室工作总结
2014/12/09 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
感恩的心主题班会
2015/08/12 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
java设计模式--三种工厂模式详解
2021/07/21 Java/Android
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android
解决redis批量删除key值的问题
2022/03/23 Redis