常见的时间格式转换工具函数

写在前面的话

当你还在为日期格式之间的相互转换抓耳挠腮时,那么你的福音来了本本片博客主要提供了五中通过原生的JavaScript实现常见的日期格式之间的各种转换,希望能帮助你解决问题
在这里插入图片描述
当你被迫从梦中醒来打开电脑,发现原来是在传参的时候日期格式不对,你暴躁的合上电脑心中一万句MMP飘过

  1. 将字符串日期转换成为 年-月-日 时:分:秒 type=1 为 年-月-日 或 年-月-日 时:分:秒
function dateTimeChange(time, type) {
    let DateTime;
    if (time) {
      let year = time.getFullYear();
      let month = time.getMonth() + 1;
      let date = time.getDate();
      let Time = time.toTimeString().slice(0, 8);
      month <= 9 ? month = '0' + month : month;
      date <= 9 ? date = '0' + date : date;
      if (type === 1) {
        return year + '-' + month + '-' + date
      } else if(type === 2){
        return Time;
      }else {
        return year + '-' + month + '-' + date + ' ' + Time;
      }
    } else {
      return '日期格式有误'
    }
  }
  1. 获取日期固定的日期比如明天,前天,后天
    s -2前天 -1昨天 0 今天 1明天 2后天,date 从哪天开始计算 不传默认为今天
function getDateStr(s, date) {
    let dd = '';
    date ? dd = new Date(date) : dd = new Date();
    dd.setDate(dd.getDate() + s);
    let y = dd.getFullYear();
    let m = dd.getMonth() + 1;
    let d = dd.getDate();
    let H = dd.getHours();
    let M = dd.getMinutes();
    let S = dd.getSeconds();
    m < 10 ? m = '0' + m : m;
    d < 10 ? d = '0' + d : d;
    return y + "-" + m + "-" + d+' '+H+':'+M+':'+S;
  }
  1. 日期相减得到天时分 d2-d1 type不传得出结果为天时分秒 0为相减得到的总秒数 1为相减的天数 2为小时数 3为分钟数,可以用来做倒计时
function getJetLag(d1, d2, type) {
   
    let date1 = new Date(d1), date2 = new Date(d2);
    let s1 = date1.getTime(), s2 = date2.getTime();
    let total = (s2 - s1) / 1000;
    let day = parseInt(total / (24 * 60 * 60));//计算整数天数
    let afterDay = total - day * 24 * 60 * 60;//取得算出天数后剩余的秒数
    let hour = parseInt(afterDay / (60 * 60));//计算整数小时数
    let afterHour = total - day * 24 * 60 * 60 - hour * 60 * 60;//取得算出小时数后剩余的秒数
    let min = parseInt(afterHour / 60);//计算整数分
    let afterMin = total - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数
    switch (type) {
      case 0:
        return total;
      case 1:
        return day;
      case 2:
        return hour;
      case 3:
        return min;
      default:
        return day + '天' + hour + '小时' + min + '分' + afterMin + '秒';
    }
  }

5.年月日转换成时间戳 day 向前天数

function formatTimeStamp(day){
    var date = new Date();
    var y = date.getFullYear();
    var m = date.getMonth()+1;
    var d = date.getDate();
    var timeStamp = new Date(y+'/'+m+'/'+d);
    if(day){
      if(day==1){
        return timeStamp.getTime()-1000*60*60*24+1000*60*60*24-1;
      }else{
        return timeStamp.getTime()-1000*60*60*24*day-1;
      }

    }else{
      return timeStamp.getTime()
    }
  }

人生建议

  • 日期时间格式的转换在我的工作中使用的频率还是特别高的不断地和后端进行数据交互,就会牵扯到日期的格式,所以大家还是要认认真真的读一下这篇博客
  • 日常编写代码一定要加上备注
    是不是很符合你的实际情况
    下期预告–版本管理控制–究竟算是谁动了你的代码??
    在这里插入图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值