时间格式化函数封装

一、常用格式 YYYY-MM-DD hh:mm:ss

function formatDate(date,format){
    date = date ? new Date(date) : new Date()
    let year = date.getFullYear()
    let month = (date.getMonth() + 1).toString().padStart(2,"0")
    let day =  date.getDate().toString().padStart(2,"0")

    let hour =  date.getHours().toString().padStart(2,"0")
    let minutes =  date.getMinutes().toString().padStart(2,"0")
    let seconds =  date.getSeconds().toString().padStart(2,"0")
    
    return format = `${year}-${month}-${day} ${hour}:${minutes}:${seconds}`
}

console.log(formatDate());

二、可变换格式

function setNumTwo(num) {
    return String(num).length > 1 ? num : "0" + num;
}
  /**
   * @params date 日期字符串
   * @params format 需要显示的日期格式
   * return 返回显示的日期的格式
   */

export function formatDate(date, format="YYYY-MM-DD hh:mm") {
    // 如果传递了日期 则格式化传入的日期对象
    date = date ? new Date(date) : new Date();
    // 用对象结构描述字符和日期的关系
    var year = date.getFullYear();
    var month = date.getMonth();
    var day = date.getDate();
    var hour = date.getHours();
    var minutes = date.getMinutes();
    var seconds = date.getSeconds();
    // 如果是MM这种两个字母的时间如果是一个数字,需要前面补0变为两位
    var date_map = {
      YYYY: year,
      MM: setNumTwo(month + 1),
      DD: setNumTwo(day),
      hh: setNumTwo(hour),
      mm: setNumTwo(minutes),
      ss: setNumTwo(seconds),
      
      YY: String(year).slice(2),
      M: month + 1,
      D: day,
      h: hour,
      m: minutes,
      s: seconds,
    };
    // 遍历date_map对象的key,把字符串里面key字符串替换为对应的日期
    Object.keys(date_map).forEach(function (key) {
      format = format.replace(key, date_map[key]);
    });
    return format;
}

三、引用moment函数库

地址:http://momentjs.cn/
比较全面好用的时间库
安装:npm install moment --save
引用:import moment from 'moment'
使用:moment(time).format("YYYY-MM-DD hh:mm")

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值