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 相关文章推荐
在javascript将NodeList作为Array数组处理的方法
Jul 09 Javascript
firefox下input type=&quot;file&quot;的size是多大
Oct 24 Javascript
javascript删除option选项的多种方法总结
Nov 22 Javascript
jqGrid读取选择的多行的某个属性代码
May 18 Javascript
js实现图片放大和拖拽特效代码分享
Sep 05 Javascript
AngularJS入门教程之AngularJS模型
Apr 18 Javascript
web 屏蔽BackSpace键实例代码
Dec 24 Javascript
微信小程序提交form操作示例
Dec 30 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
原生js实现五子棋游戏
May 28 Javascript
js获取图片的base64编码并压缩
Dec 05 Javascript
深入讲解Vue中父子组件通信与事件触发
Mar 22 Vue.js
小程序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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
js的写法基础分析
2011/01/17 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
Python中除法使用的注意事项
2014/08/21 Python
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
python3.6的venv模块使用详解
2018/08/01 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
酒店总经理职务说明书
2014/02/26 职场文书
美国留学经济担保书
2014/05/20 职场文书
上课随便讲话检讨书
2014/09/12 职场文书
python中redis包操作数据库的教程
2022/04/19 Python