vue使用Moment插件格式化时间

本文介绍了在Vue项目中如何使用Moment.js进行时间格式化,包括在main.js中全局引入、定义全局过滤器以及设置时区的方法。同时,展示了Moment.js的日期格式化、相对时间和日历时间的多种用法,还提及了多语言支持的功能。
摘要由CSDN通过智能技术生成

参考
vue使用Moment插件格式化时间
vue中使用moment

使用npm命令安装moment

npm install moment --save

一、直接使用

安装依赖后直接导入进行使用,不太方便,在要使用的每个组件中都需要导入

import moment from 'moment'
console.log(moment(val).format('YYYY-MM-DD HH:mm:ss'))

二、在main.js中全局导入进行使用

1、main.js 挂载 引入

import moment from 'moment'//导入文件
Vue.prototype.$moment = moment;//赋值使用

2、在组件中使用this.$moment

this.$moment('string').format("YYYY-DD-MM")
this.$moment('2018-09-19T05:54:32.767Z').format("YYYY-DD-MM")

三、在main.js文件里使用moment定义全局过滤器

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import Moment from 'moment'

// 定义全局时间戳过滤器
// filter两个参数 第一个是函数名  第二个是时间格式化处理的函数,要格式化的value值默认是第一个参数
Vue.filter('formatDate', function(value,pattern = 'YYYY-MM-DD HH:mm:ss') {
  return Moment(value).format(pattern)
})

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

3、在组件里使用

使用默认的pattern参数

<div class="time">{{item.rateTime | formatDate}}</div>

使用自定义的pattern参数

<div class="time">{{item.rateTime | formatDate('YYYY-MM-DD HH:mm:ss')}}</div>

四、使用 moment-timezone设置时区

1、安装两个依赖

npm install moment --save
npm install moment-timezone--save

2、基本使用方法和moment一样

import moment from 'moment-timezone'

// console.log(moment.tz.guess())			  如果你不知道你自己当前所在地的时区,请使用此代码查看.
moment.tz.setDefault("Asia/Shanghai");
moment(val).format('YYYY-MM-DD HH:mm:ss')

五、常用的一些日期格式化方法

1、日期格式化

moment().format('MMMM Do YYYY, h:mm:ss a'); // 四月 16日 2019, 12:24:48 中午
moment().format('dddd');                    // 星期二
moment().format("MMM Do YY");               // 4月 16日 19
moment().format('YYYY [escaped] YYYY');     // 2019 escaped 2019
moment().format();                          // 2019-04-16T12:24:48+08:00

2、相对时间

moment("20111031", "YYYYMMDD").fromNow(); // 7 年前
moment("20120620", "YYYYMMDD").fromNow(); // 7 年前
moment().startOf('day').fromNow();        // 12 小时前
moment().endOf('day').fromNow();          // 12 小时内
moment().startOf('hour').fromNow();       // 28 分钟前

3、日历时间

moment().subtract(10, 'days').calendar(); // 2019年4月6日
moment().subtract(6, 'days').calendar();  // 上周三中午12点28
moment().subtract(3, 'days').calendar();  // 上周六中午12点28
moment().subtract(1, 'days').calendar();  // 昨天中午12点28分
moment().calendar();                      // 今天中午12点28分
moment().add(1, 'days').calendar();       // 明天中午12点28分
moment().add(3, 'days').calendar();       // 本周五中午12点28
moment().add(10, 'days').calendar();      // 2019年4月26日

4、多语言支持

moment().format('L');    // 2019-04-16
moment().format('l');    // 2019-04-16
moment().format('LL');   // 2019年4月16日
moment().format('ll');   // 2019年4月16日
moment().format('LLL');  // 2019年4月16日中午12点28分
moment().format('lll');  // 2019年4月16日中午12点28分
moment().format('LLLL'); // 2019年4月16日星期二中午12点28分
moment().format('llll'); // 2019年4月16日星期二中午12点28分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值