js 工具函数之时间戳转成utc时间格式

§ 有时我们前端需要带TZ的时间格式该怎么转,网上几乎没有类似的工具函数

下面是我自己写的一个折中方法,不是很精确,但是可以精确到毫秒级

§ 直接上代码


export const TimeUtils = {
  format(fmt, date = new Date()) {
    date = new Date(date);
    let ret;
    let opt = {
      'Y+': date.getFullYear().toString(), // 年
      'M+': (date.getMonth() + 1).toString(), // 月
      'D+': date.getDate().toString(), // 日
      'h+': date.getHours().toString(), // 时
      'm+': date.getMinutes().toString(), // 分
      's+': date.getSeconds().toString() // 秒
      // 有其他格式化字符需求可以继续添加,必须转化成字符串
    };
    for (let k in opt) {
      ret = new RegExp('(' + k + ')').exec(fmt);
      if (ret) {
        fmt = fmt.replace(ret[1], (ret[1].length === 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, '0')));
      }
    }
    return fmt;
  },
  formatUTC: () => {
    let time = TimeUtils.format('YYYY-MM-DD hh:mm:ss',  new Date().getTime() - 8 * 3600 * 1000)
    time = time.replace(/\//g, '-')
    time = time.replace(' ', 'T')
    time = time + '.435Z' // .435z是仿带Z格式随意加上的,可以是任意三位数字加Z
    return time
  }
};

执行结果

TimeUtils.formatUTC()
'2022-06-25T09:26:16.435Z'

欢迎点赞评论加转发,本文由蜗牛老湿开发一键发布平台butterfly发布

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值