2021-08-12

前端必备技能处理时间戳【doge】

在这里插入图片描述

1.自建一个 js 文件


export function formatDate(date, fmt) {
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    let o = {
        'M+': date.getMonth() + 1,
        'd+': date.getDate(),
        'h+': date.getHours(),
        'm+': date.getMinutes(),
        's+': date.getSeconds()
    };
    for (let k in o) {
        if (new RegExp(`(${k})`).test(fmt)) {
            let str = o[k] + '';
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
        }
    }
    return fmt;
};

function padLeftZero(str) {
    return ('00' + str).substr(str.length);
};

2.在组件模板中使用

<template>
    <div>{{time|formatDate}}</div>
</template>

3.在 script 中引用和定义

<script>
import {formatDate} from 'xxx.js';
export default {
    filters: {
        formatDate(time) {
             注意:time应为格式为13位的unix时间戳
             需要  转化为年-月-日 时:分:秒
             time = time * 1000;
            var date = new Date(time);
            return formatDate(date, 'yyyy-MM-dd hh:mm');
        }
    }
}
</script>

第二种方式转时间戳

通过安装插件依赖

  • moment.js
  • day.js

安装 dayjs

NPM

npm install dayjs --save
import dayjs from 'dayjs'


在项目中使用
var data = dayjs().format('YYYY-MM-DD dddd HH:mm:ss.SSS A')

格式化 Dayjs 对象并展示。

格式化
  • return String

接收一系列的时间日期字符串并替换成相应的值。

dayjs().format(String);
dayjs("2019-01-25").format("[YYYY] YYYY-MM-DDTHH:mm:ssZ[Z]"); // 'YYYY 2019-01-25T00:00:00-02:00Z'
dayjs().format("{YYYY} MM-DDTHH:mm:ssZ[Z]"); // "{2014} 09-08T08:02:17-05:00Z"

参照 api 如下:

格式输出描述
YY18两位数的年份
YYYY2018四位数的年份
M1-12月份,从 1 开始
MM01-12月份,两位数
MMMJan-Dec简写的月份名称
MMMMJanuary-December完整的月份名称
D1-31月份里的一天
DD01-31月份里的一天,两位数
d0-6一周中的一天,星期天是 0
ddSu-Sa最简写的一周中一天的名称
dddSun-Sat简写的一周中一天的名称
ddddSunday-Saturday一周中一天的名称
H0-23小时
HH00-23小时,两位数
h1-12小时, 12 小时制
hh01-12Hours, 12 小时制, 两位数
m0-59分钟
mm00-59分钟,两位数
s0-59
ss00-59秒 两位数
SSS000-999毫秒 三位数
Z+05:00UTC 的偏移量
ZZ+0500UTC 的偏移量,数字前面加上 0
AAM PM
aam pm
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值