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监听浏览器的问题
Jun 23 Javascript
JavaScript.Encode手动解码技巧
Jul 14 Javascript
javascript smipleChart 简单图标类
Jan 12 Javascript
BootStrap中的table实现数据填充与分页应用小结
May 26 Javascript
javascript验证内容为数字以及长度为10的简单实例
Aug 20 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
Dec 01 Javascript
巧用Javascript的逻辑运算符
Dec 02 Javascript
微信小程序 二维码canvas绘制实例详解
Jan 06 Javascript
React中jquery引用的实现方法
Sep 12 jQuery
vue实现的树形结构加多选框示例
Feb 02 Javascript
vue如何获取自定义元素属性参数值的方法
May 14 Javascript
Vue实现input宽度随文字长度自适应操作
Jul 29 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
SONY SRF-M100的电路分析
2021/03/02 无线电
PHP调用三种数据库的方法(1)
2006/10/09 PHP
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
PHP队列用法实例
2014/11/05 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
js 数组克隆方法 小结
2010/03/20 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
python局域网ip扫描示例分享
2014/04/03 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
Python属性和内建属性实例解析
2020/01/14 Python
python numpy矩阵信息说明,shape,size,dtype
2020/05/22 Python
python源文件的字符编码知识点详解
2021/03/04 Python
使用HTML5 Canvas API绘制弧线的教程
2016/03/22 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
晚会闭幕词
2015/01/28 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
MySQL多表查询机制
2022/03/17 MySQL