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中判断一个值是否在数组中并没有直接使用
Dec 17 Javascript
jQuery中html()方法用法实例
Dec 25 Javascript
JavaScript设计模式之代理模式介绍
Dec 28 Javascript
jquery实现从数组移除指定的值
Jun 24 Javascript
7个jQuery最佳实践
Jan 12 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
Jun 22 Javascript
d3.js入门教程之数据绑定详解
Apr 28 Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
Sep 13 Javascript
JavaScript常见JSON操作实例分析
Aug 08 Javascript
vue回到顶部监听滚动事件详解
Aug 02 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
Sep 21 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求两个文件的相对路径
2013/06/20 PHP
生成随机字符串和验证码的类的PHP实例
2013/12/24 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
php商品对比功能代码分享
2015/09/24 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
js实现可拖动DIV的方法
2013/12/17 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
jquery.mobile 共同布局遇到的问题小结
2015/02/10 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
在Docker上开始部署Python应用的教程
2015/04/17 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
python tornado使用流生成图片的例子
2019/11/18 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
护理专业应届毕业生推荐信
2013/11/15 职场文书
受欢迎的大学生自我评价
2013/12/05 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
Golang实现可重入锁的示例代码
2022/05/25 Golang