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 相关文章推荐
Ajax,UTF-8还是GB2312 eval 还是execScript
Nov 13 Javascript
jQuery实现图片放大预览实现原理及代码
Sep 12 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
Oct 17 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
Dec 31 Javascript
使用jquery动态加载js文件的方法
Dec 24 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
Aug 24 Javascript
利用Node.JS实现邮件发送功能
Oct 21 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
Jul 05 Javascript
vue给对象动态添加属性和值的实例
Sep 09 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
Sep 10 Javascript
JS实现烟花爆炸效果
Mar 10 Javascript
jQuery实现简单飞机大战
Jul 05 jQuery
小程序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文件上传原理简单分析
2011/05/29 PHP
PHP导入导出Excel代码
2015/07/07 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
python局域网ip扫描示例分享
2014/04/03 Python
对python中的logger模块全面讲解
2018/04/28 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
常用的四种CSS透明属性介绍
2014/04/12 HTML / CSS
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
数据库基础的一些面试题
2012/02/25 面试题
环境工程大学生自荐信
2013/10/21 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
市优秀教师事迹材料
2014/02/05 职场文书
庆六一宣传标语
2014/10/08 职场文书
三八妇女节致辞
2015/07/31 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
Python内置数据结构列表与元组示例详解
2021/08/04 Python
Windows server 2016服务器基本设置
2022/08/14 Servers