vue之moment的使用方式
前言
在日常開發(fā)中,我們常常會遇到以下幾種場景:
需要對日期進行非標準格式展示,如 :2021年5月11日星期二下午6點42分
需要對日期進行處理,如:要取前24小時的時間 等
在這時候用js原生的new Date()處理就有些麻煩了,因此我們找到了moment這個類庫
一、moment是什么?
moment 是一個 JavaScript 日期處理類庫。
注:以下所有時間相對于現(xiàn)在時間:2021/05/11/18:42 星期二
1.日期格式化:
moment().format('MMMM Do YYYY, h:mm:ss a'); // 五月 11日 2021, 6:42:31 下午 moment().format('dddd'); // 星期二 moment().format("MMM Do YY"); // 5月 11日 21 moment().format('YYYY [escaped] YYYY'); // 2021 escaped 2021 moment().format(); //2021-05-11T18:06:42+08:00
2.相對時間:
moment("20111031", "YYYYMMDD").fromNow(); // 2011/10/31號相對于現(xiàn)在是: 10 年前 moment("20120620", "YYYYMMDD").fromNow(); // 2012/06/20號相對于現(xiàn)在是: 9 年前 moment().startOf('day').fromNow(); //當前日期開始即:2021/05/11/00:00:00相對于現(xiàn)在是: 19 小時前 moment().endOf('day').fromNow(); //當前日期結(jié)束即:2021/05/11/24:00:00相對于現(xiàn)在是: 5 小時內(nèi) moment().startOf('hour').fromNow(); //當前日期小時開始即:2021/05/11/18:00:00相對于現(xiàn)在是: 42分鐘前
3.日歷時間:
moment().subtract(10, 'days').calendar(); // 當前時間往前推10天的日歷時間: 2021/05/01 moment().subtract(6, 'days').calendar(); // 當前時間往前推6天: 上星期三18:42 moment().subtract(3, 'days').calendar(); // 當前時間往前推3天: 上星期六18:42 moment().subtract(1, 'days').calendar(); // 當前時間往前推1天: 昨天18:42 moment().calendar(); // 今天18:42 moment().add(1, 'days').calendar(); // 當前時間往后推1天: 明天18:42 moment().add(3, 'days').calendar(); // 當前時間往后推3天: 下星期五18:42 moment().add(10, 'days').calendar(); // 當前時間往后推10天: 2021/05/21
4.多語言支持:
moment.locale(); // zh-cn moment().format('LT'); // 18:42 moment().format('LTS'); // 18:42:31 moment().format('L'); // 2021/05/11 moment().format('l'); // 2021/5/11 moment().format('LL'); // 2021年5月11日 moment().format('ll'); // 2021年5月11日 moment().format('LLL'); // 2021年5月11日下午6點42分 moment().format('lll'); // 2021年5月11日 18:42 moment().format('LLLL'); // 2021年5月11日星期二下午6點42分 moment().format('llll'); // 2021年5月11日星期二 18:42
二、使用步驟(例:默認查詢時間24小時之前~當前時間)
1.引入庫
$ npm install moment --save
2.在main.js中全局引入(也可單獨在使用的文件中引入,具體看需求)
import moment from "moment" Vue.prototype.$moment = moment;
3.在需要使用日期的地方使用
HTML中:
?<el-date-picker ? ? ?? ?v-model="timeRange" ? ? ? ? type="datetimerange" ? ? ? ? range-separator="至" ? ? ? ? start-placeholder="開始日期" ? ? ? ? end-placeholder="結(jié)束日期"> ?</el-date-picker>
JS中:
?data() { ? ? ? return { ? ? ? ? ?timeRange:[], ? ? ? } ? ?}, ? mounted(){ ? ? ? ? let start = this.$moment() ? ? ? ? ? ? .subtract('1', 'd') ? ? ? ? ? ? .format('YYYY-MM-DD HH:mm:ss') //當前時間往前推1天(24小時):2021-05-10 18:42:53 ? ? ? ? let end = this.$moment().format('YYYY-MM-DD HH:mm:ss') //當前時間:2021-05-11 18:42:53 ? ? ? ? this.timeRange=[start,end] ? ?}, ?
三、日期格式
格式 | 含義 | 舉例 | 備注 |
---|---|---|---|
yyyy | 年 | 2021 | 同YYYY |
M | 月 | 1 | 不補0 |
MM | 月 | 01 | |
d | 日 | 2 | 不補0 |
dd | 日 | 02 | |
dddd | 星期 | 星期二 | |
H | 小時 | 3 | 24小時制;不補0 |
HH | 小時 | 18 | 24小時制 |
h | 小時 | 3 | 12小時制,須和 A 或 a 使用;不補0 |
hh | 小時 | 03 | 12小時制,須和 A 或 a 使用 |
m | 分鐘 | 4 | 不補0 |
mm | 分鐘 | 04 | |
s | 秒 | 5 | 不補0 |
ss | 秒 | 05 | |
A | AM/PM | AM | 僅 format 可用,大寫 |
a | am/pm | am | 僅 format 可用,小寫 |
具體方法以及參數(shù)可詳見moment官方文檔
四、new Date() 相關(guān)
日期都寫這么多了,那new Date()也一起總結(jié)下吧
let time = new Date(); //獲取當前時間 Tue May 11 2021 18:42:51 GMT+0800 (中國標準時間) let year = time.getFullYear(); //獲取年 2021 let month = time.getMonth() + 1; //獲取月 5 let day = time.getDate(); //獲取天 11 let h = time.getHours(); //獲取小時 18 let m = time.getMinutes(); //獲取分鐘 42 let s = time.getSeconds(); //獲取秒 51 let weekDay = time.getDay(); //獲取星期 2
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決uniapp項目在微信開發(fā)工具里打開報錯Error:app.json:在項目根目錄未找到app.json
這篇文章主要給大家介紹了關(guān)于解決uniapp項目在微信開發(fā)工具里打開報錯Error:app.json:在項目根目錄未找到app.json的相關(guān)資料,文中通過圖文將解決的辦法介紹的非常詳細,需要的朋友可以參考下2024-03-03關(guān)于nuxt?store中保存localstorage的問題
這篇文章主要介紹了關(guān)于nuxt?store中保存localstorage的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10vue-i18n結(jié)合Element-ui的配置方法
這篇文章主要介紹了vue-i18n結(jié)合Element-ui的配置方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05vue3中關(guān)于路由hash與History的設(shè)置
這篇文章主要介紹了vue3中關(guān)于路由hash與History的設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04解決vue keep-alive 數(shù)據(jù)更新的問題
今天小編就為大家分享一篇解決vue keep-alive 數(shù)據(jù)更新的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09