整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Vue 2使用moment.js格式化时间

Vue 2使用moment.js格式化时间

端开发中经常遇到需要转换后端返回的时间数据,转为前端需要自己的格式,使用开源库moment.js可以快速帮助我们转换,因为这个库已经提供很多时间转换方法,我们可以拿来直接使用,这个库的官方地址:GitHub - moment/moment: Parse, validate, manipulate, and display dates in javascript.

安装

npm install moment --save

在main.js注册转换过滤器

//定义moment全局日期过滤器
import Moment from 'moment'
Vue.filter('convertTime', function (data, formatStr) {
  return Moment(data).format(formatstr);
});

在页面使用过滤器

{{ 'xxx' | convertTime('yyyy—mm—dd') }}

其他

也可以不在main.js注册过滤器(Vue 3没有过滤器,Vue 2才有过滤器),直接在vue页面的script使用内置的方法

使用moment将时间戳和日期互转:

  • 时间:var time=new Date(); // Tue Aug 28 2018 09:16:06 GMT+0800 (中国标准时间)
  • 时间戳:var timestamp=Date.parse(time); // 1535419062000 (Date.parse() 默认不取毫秒,即后三位毫秒为0)
  • moment转时间:moment(time).valueOf(); // 1535419062126
  • moment转时间戳:moment(timestamp).format(); // 2018-08-28T09:17:42+08:00

TML 文本格式化

加粗文本

斜体文本

电脑自动输出

这是 下标 和 上标

HTML 格式化标签

HTML 使用标签<b> 与<i> 对输出的文本进行格式, 如:粗体 or 斜体

这些HTML标签被称为格式化标签(请查看底部完整标签参考手册)。

通常标签 <strong> 替换加粗标签 <b> 来使用, <em> 替换 <i>标签使用。然而,这些标签的含义是不同的:<b> 与<i> 定义粗体或斜体文本。<strong> 或者 <em>意味着你要呈现的文本是重要的,所以要突出显示。现今所有主要浏览器都能渲染各种效果的字体。不过,未来浏览器可能会支持更好的渲染效果。

在线实例

文本格式化

此例演示如何在一个 HTML 文件中对文本进行格式化

预格式文本

此例演示如何使用 pre 标签对空行和空格进行控制。

"计算机输出"标签

此例演示不同的"计算机输出"标签的显示效果。

地址

此例演示如何在 HTML 文件中写地址。

缩写和首字母缩写

此例演示如何实现缩写或首字母缩写。

文字方向

此例演示如何改变文字的方向。

块引用

此例演示如何实现长短不一的引用语。

删除字效果和插入字效果

此例演示如何标记删除文本和插入文本。

HTML 文本格式化标签

标签描述
<b>定义粗体文本
<em>定义着重文字
<i>定义斜体字
<small>定义小号字
<strong>定义加重语气
<sub>定义下标字
<sup>定义上标字
<ins>定义插入字
<del>定义删除字

HTML "计算机输出" 标签

标签描述
<code>定义计算机代码
<kbd>定义键盘码
<samp>定义计算机代码样本
<var>定义变量
<pre>定义预格式文本

HTML 引文, 引用, 及标签定义

标签描述
<abbr>定义缩写
<address>定义地址
<bdo>定义文字方向
<blockquote>定义长的引用
<q>定义短的引用语
<cite>定义引用、引证
<dfn>定义一个定义项目。

如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!

们在处理日期展示的时候经常需要将时间戳转换为格式化的日期,比较省力的方法是直接使用日期格式化的NPM包,比如:moment.js。但是有时候你不想因为这个小需求引入一个包,或者你想用原生JavaScript实现格式化。

可能的实现是这样的:

const date=new Date();
const year=date.getFullYear();
const month=date.getMonth() + 1;
const day=date.getDate();
const hour=date.getHours();
const min=date.getMinutes();
const ss=date.getSeconds();
console.log(`${year}-${month}-${day} ${hour}:${min}:${ss}`);
// 2021-8-1 10:31:45


但是这样还不符合格式,因为月份,日期,小时,分,秒有可能是一位数字,需要在数字前补0。所以上面的代码还需要修改一下:

const padZero=function(num){ return num < 10 ? `0${num}` : num;}
const date=new Date();
const year=date.getFullYear();
const month=date.getMonth() + 1;
const day=date.getDate();
const hour=date.getHours();
const min=date.getMinutes();
const ss=date.getSeconds();
console.log(`${year}-${padZero(month)}-${padZero(day)} ${padZero(hour)}:${padZero(min)}:${padZero(ss)}`); 
// 2021-08-01 10:38:26


我们实现了一个工具数字大小自动补零的方法,除了上面的方法还有别的方式吗?JavaScript作为一个非常灵活的语言,一定有其他的实现方式。今天就看到一个巧妙的解决办法。

const date=new Date();
const year=date.getFullYear();
const month='0' + (date.getMonth() + 1);
const day='0' + date.getDate();
const hour='0' + date.getHours();
const min='0' + date.getMinutes();
const ss='0' + date.getSeconds();
console.log(`${year}-${month.slice(-2)}-${day.slice(-2)} ${hour.slice(-2)}:${min.slice(-2)}:${ss.slice(-2)}`); 
// 2021-08-01 13:43:29



先通过统一添加前缀字符"0",然后再统一截取后两位字符。这样做确实很聪明,很好地达到了格式化的目的。

语言没有高低之分,水平在乎自己。


欢迎大家点赞,评论,收藏,转发。