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 相关文章推荐
js实现拉伸拖动iframe的具体代码
Aug 03 Javascript
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
怎么选择Javascript框架(Javascript Framework)
Nov 22 Javascript
javascript元素动态创建实现方法
May 13 Javascript
JS实现仿苹果底部任务栏菜单效果代码
Aug 28 Javascript
浅析Node.js 中 Stream API 的使用
Oct 23 Javascript
基于iScroll实现下拉刷新和上滑加载效果
Jul 18 Javascript
荐书|您有一份JavaScript书单待签收
Jul 21 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
Aug 16 Javascript
Vue数据双向绑定原理及简单实现方法
May 18 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
Oct 09 Javascript
JavaScript编码小技巧分享
Sep 17 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 不错的学习资料
2009/02/06 PHP
PHP的password_hash()使用实例
2014/03/17 PHP
php实现webservice实例
2014/11/06 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
Yii全局函数用法示例
2017/01/22 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
JavaScript全局函数使用简单说明
2011/03/11 Javascript
Javascript引用指针使用介绍
2012/11/07 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
easy_install python包安装管理工具介绍
2013/02/10 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
python源文件的字符编码知识点详解
2021/03/04 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
国际政治个人自荐信范文
2013/11/26 职场文书
日本语毕业生自荐信
2014/02/01 职场文书
招股说明书范本
2014/05/06 职场文书
借款担保书范文
2014/05/13 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
龙猫观后感
2015/06/09 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
Python os和os.path模块详情
2022/04/02 Python