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小技巧 2.5 则
Sep 12 Javascript
仿新浪微博返回顶部的jquery实现代码
Oct 01 Javascript
javascript包装对象实例分析
Mar 27 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
May 17 Javascript
如何使用bootstrap框架 bootstrap入门必看!
Apr 13 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
May 12 Javascript
Javascript之图片的延迟加载的实例详解
Jul 24 Javascript
微信小程序实现图片放大预览功能
Oct 22 Javascript
vue组件发布到npm简单步骤
Nov 30 Javascript
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
JavaScript时间与时间戳的转换操作实例分析
Dec 07 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
Feb 12 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
动态新闻发布的实现及其技巧
2006/10/09 PHP
phpMyAdmin 安装及问题总结
2009/05/28 PHP
PHP修改session_id示例代码
2014/01/08 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
javascript 动态添加表格行
2006/06/22 Javascript
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
基于vue的换肤功能的示例代码
2017/10/10 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
python删除列表中重复记录的方法
2015/04/28 Python
python抓取百度首页的方法
2015/05/19 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
分布式数据库需要考虑哪些问题
2013/12/08 面试题
优秀毕业生推荐信
2013/11/02 职场文书
普师专业个人自荐信范文
2013/11/26 职场文书
大专生求职信
2014/06/29 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL