js 计算两个时间的时间差

计算时间差原理

getTime()方法可返回距 1970 年 1 月 1 日之间的毫秒数。
通常我们计算时间差都是通过获取两个时间数据,然后分别使用getTime()方法返回与固定的1970 年 1 月 1 日的时间差,通过对返回毫秒数的差,换算成时间单位,得出两个时间的时间差。

第一种:"2017/08/28 04:56:38"//这种格式不用再进行处理
第二种:"2017-08-01 18:56:38"//这种格式就要进行处理

因为new Date()方法不能处理第二种数据,所以我们这里需要将第二种数据格式转化为第一种数据的格式。

完整计算时间差(天、小时、分钟、秒)的代码

function timeFn(d1) {//d1作为一个变量传进来
    //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了
    var dateBegin = new Date(d1.replace(/-/g, "/"));//将-转化为/,使用new Date
    var dateEnd = new Date();//获取当前时间
    var dateDiff = dateEnd.getTime() - dateBegin.getTime();//时间差的毫秒数
    var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数
    var leave1=dateDiff%(24*3600*1000)    //计算天数后剩余的毫秒数
    var hours=Math.floor(leave1/(3600*1000))//计算出小时数
    //计算相差分钟数
    var leave2=leave1%(3600*1000)    //计算小时数后剩余的毫秒数
    var minutes=Math.floor(leave2/(60*1000))//计算相差分钟数
    //计算相差秒数
    var leave3=leave2%(60*1000)      //计算分钟数后剩余的毫秒数
    var seconds=Math.round(leave3/1000)
    console.log(" 相差 "+dayDiff+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒")
    console.log(dateDiff+"时间差的毫秒数",dayDiff+"计算出相差天数",leave1+"计算天数后剩余的毫秒数",hours+"计算出小时数",minutes+"计算相差分钟数",seconds+"计算相差秒数");
}
var t3="2017-08-18 04:56:38";
timeFn(t3);

获取当前月份的天数

    function getDays() {
       //构造当前日期对象
       var date = new Date();
       var year = date.getFullYear();//获取年份
       var mouth = date.getMonth() + 1;//获取当前月份
       var days;//定义当月的天数;
       if (mouth == 2) {//当月份为二月时,根据闰年还是非闰年判断天数
           days = year % 4 == 0 ? 29 : 28;
       }else if (mouth == 1 || mouth == 3 || mouth == 5 || mouth == 7 || mouth == 8 || mouth == 10 || mouth == 12) {
           //月份为:1,3,5,7,8,10,12 时,为大月.则天数为31;
           days = 31;
       }else {
           //其他月份,天数为:30.
           days = 30;
       }
       return days;
   }

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值