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 相关文章推荐
jQuery 处理表单元素的代码
Feb 15 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
May 23 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
Nov 22 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
Nov 30 Javascript
JQuery选择器绑定事件及修改内容的方法
Jan 23 Javascript
基于JS实现类似支付宝支付密码输入框
Sep 02 Javascript
使用原生的javascript来实现轮播图
Feb 24 Javascript
Map.vue基于百度地图组件重构笔记分享
Apr 17 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
Jan 08 jQuery
vue实现路由不变的情况下,刷新页面操作示例
Feb 02 Javascript
vue路由传参的基本实现方式小结【三种方式】
Feb 05 Javascript
JavaScript实现点击出现子菜单效果
Feb 08 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入门经历和学习过程分享
2014/04/11 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
2014/11/03 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
2016/10/22 PHP
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
fastadmin中调用js的方法
2019/05/14 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
[03:38]TI4西雅图DOTA2前线报道 71专访
2014/07/08 DOTA
python显示生日是星期几的方法
2015/05/27 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
python对象与json相互转换的方法
2019/05/07 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
python super用法及原理详解
2020/01/20 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
pygame实现弹球游戏
2020/04/14 Python
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
大四自我鉴定范文
2013/10/06 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
成龙洗发水广告词
2014/03/14 职场文书
元旦晚会主持词
2014/03/24 职场文书
村委会贫困证明范本
2014/09/17 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
见习报告格式要求
2014/11/04 职场文书
公司年会晚会开幕词
2019/04/02 职场文书