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 相关文章推荐
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
jQuery Jcrop插件实现图片选取功能
Nov 23 Javascript
JS替换字符串中字符即替换全部而不是第一个
Jun 04 Javascript
Easyui form combobox省市区三级联动
Jan 13 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
Feb 06 Javascript
Node.js操作Firebird数据库教程
Mar 04 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
Aug 29 Javascript
利用JS实现文字的聚合动画效果
Jan 22 Javascript
JS简单实现自定义右键菜单实例
May 31 Javascript
vue+springboot图片上传和显示的示例代码
Feb 14 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
Jul 12 Javascript
利用js canvas实现五子棋游戏
Oct 11 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/21 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
JQuery与iframe交互实现代码
2009/12/24 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
建筑个人求职信范文
2014/01/25 职场文书
公立医院改革实施方案
2014/03/14 职场文书
环保倡议书500字
2014/05/15 职场文书
松材线虫病防治方案
2014/06/15 职场文书
化工实习心得体会
2014/09/09 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
化工见习报告范文
2014/10/31 职场文书
2014年化验室工作总结
2014/11/21 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
爱岗敬业事迹材料
2014/12/24 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang