關(guān)于vue中的時(shí)間格式轉(zhuǎn)化問(wèn)題
vue時(shí)間格式轉(zhuǎn)化問(wèn)題
1. 效果圖

2. 需求:前臺(tái)展示一律用的時(shí)間規(guī)格
yyyy-MM-dd HH:mm:SS,即要求月日時(shí)分秒小于兩位數(shù)的都要補(bǔ)0,這樣顯得整體化一。所以下面就是專門對(duì)月日時(shí)分秒小于10時(shí)做補(bǔ)0的處理,實(shí)際剛開始想到的就是直接挨個(gè)判斷月日時(shí)分秒<10時(shí),直接拼接0的想法,被同事打斷了,這個(gè)方法太繁瑣了。所以發(fā)現(xiàn)了以下簡(jiǎn)潔的方法,據(jù)說(shuō)是es6中的函數(shù)用法,還沒(méi)有去具體查詢出處,先用著再說(shuō)吧。接下來(lái)分析代碼.
可以把它寫在一個(gè)單獨(dú)的js中,這樣就可以寫在公共方法里,大家都可以調(diào)用的那種,當(dāng)然也可以寫在你需要地方的方法里,按照自己的實(shí)際情況來(lái)
① 寫在公共方法里
可以在工具文件夾底下新建一個(gè)data.js,如下:

代碼部門:
其中Vue.prototype是將formatDate這個(gè)方法設(shè)置問(wèn)全局方法,這樣就都可以調(diào)用了,注意方法名名為formatDate,后面用
/**
* Created by syp on 2020/5/15.
*/
exports.install = function (Vue, options) {
Vue.prototype.formatDate = function (row, column) {
let data = row[column.property]
if (data == null) {
return null
}
let dt = new Date(data)
let yyyy = dt.getFullYear()
let MM = (dt.getMonth() + 1).toString().padStart(2, '0')
let dd = dt.getDate().toString().padStart(2, '0')
let h = dt.getHours().toString().padStart(2, '0')
let m = dt.getMinutes().toString().padStart(2, '0')
let s = dt.getSeconds().toString().padStart(2, '0')
return yyyy + '-' + MM + '-' + dd + ' ' + h + ':' + m + ':' + s
}
}處理好data.js后,再在公共js中調(diào)用一下,設(shè)置為全局的,這樣大家就都可以用了

然后在vue頁(yè)面進(jìn)行調(diào)用圖:
:formatter="formatDate"
formatDate就是設(shè)置為全局方法的方法名

② 將它只是變?yōu)榫植康母袷交瘯r(shí)間調(diào)用,那么就需要把格式化時(shí)間的代碼放在調(diào)用頁(yè)面的方法中
一下這個(gè)方法只需要放在本頁(yè)面的method底下就好了
formatDate (row, column) {
let data = row[column.property]
if (data == null) {
return null
}
let dt = new Date(data)
return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' ' + dt.getHours() + ':' + dt.getMinutes() + ':' + dt.getSeconds()
},在列表展示的熟悉中運(yùn)用和上面一樣都用:formatter="formatDate"就ok了。
圖示:

vue轉(zhuǎn)換時(shí)間格式(適用于uni-app)
1. 前端獲取實(shí)時(shí)時(shí)間
<template>
<view class="content">
<view>{{date}}</view>
</view>
</template><script>
export default {
data() {
return{
date: new Date()
}
},
onLoad() {},
mounted: function() {
let that = this
//setInterval() 方法可按照指定的周期(以毫秒計(jì))來(lái)調(diào)用函數(shù)或計(jì)算表達(dá)式
//每一毫秒調(diào)用一次
that.timer = setInterval(function() {
that.date = new Date();
}, 1000)
},
beforeDestroy: function() {
if (this.timer) {
clearInterval(this.timer)
}
},
methods: {
}
}
</script>獲得國(guó)際標(biāo)準(zhǔn)時(shí)間

2. 運(yùn)用過(guò)濾器
通過(guò)給Vue實(shí)例添加選項(xiàng)filters來(lái)設(shè)置,給時(shí)間格式化處理
<template>
?? ?<view class="content">
?? ??? ?<view>{{date ?| formatDate}}</view>
?? ?</view>
</template><script>
?? ?//一、時(shí)間轉(zhuǎn)換關(guān)鍵
?? ?var padDate = function(value) {
?? ??? ?return value < 10 ? '0' + value : value;
?? ?};
?? ?export default {
?? ?//二、時(shí)間轉(zhuǎn)換關(guān)鍵
?? ??? ?filters: {
?? ??? ??? ?formatDate: function(value) {
?? ??? ??? ??? ?var date = new Date(value);
?? ??? ??? ??? ?var year = date.getFullYear();
?? ??? ??? ??? ?var month = padDate(date.getMonth()+1);
?? ??? ??? ??? ?var day = padDate(date.getDate());
?? ??? ??? ??? ?var hours = padDate(date.getHours());
?? ??? ??? ??? ?var minutes = padDate(date.getMinutes());
?? ??? ??? ??? ?var seconds = padDate(date.getSeconds());
?? ??? ??? ??? ?return year + '-' + month + "-" + day + " ?" + hours + ":" + minutes + ":" + seconds
?? ??? ??? ?}
?? ??? ?},
?? ??? ?
?? ??? ?data() {
?? ??? ??? ?return{
?? ??? ??? ??? ?date: new Date()
?? ??? ??? ?}
?? ??? ?},
?? ??? ?onLoad() {},
?? ??? ?mounted: function() {
?? ??? ??? ?let that = this
?? ??? ??? ?//setInterval() 方法可按照指定的周期(以毫秒計(jì))來(lái)調(diào)用函數(shù)或計(jì)算表達(dá)式
?? ??? ??? ?//每一毫秒調(diào)用一次
?? ??? ??? ?that.timer = setInterval(function() {
?? ??? ??? ??? ?that.date = new Date();
?? ??? ??? ?}, 1000)
?? ??? ?},
?? ??? ?beforeDestroy: function() {
?? ??? ??? ?if (this.timer) {
?? ??? ??? ??? ?clearInterval(this.timer)
?? ??? ??? ?}
?? ??? ?},
?? ??? ?methods: {
?? ??? ?}
?? ?}
</script>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用electron將vue項(xiàng)目打包成.exe文件(保姆級(jí)教程)
本文給大家介紹如何使用electron將vue項(xiàng)目打包成.exe文件,大家要注意一下vue2項(xiàng)目,使用的vue-element-admin框架,用electron打包成.exe文件,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2024-03-03
vue2.0 如何把子組件的數(shù)據(jù)傳給父組件(推薦)
這篇文章主要介紹了vue2.0 如何把子組件的數(shù)據(jù)傳給父組件,需要的朋友可以參考下2018-01-01
如何用vue實(shí)現(xiàn)網(wǎng)頁(yè)截圖你知道嗎
這篇文章主要為大家介紹了vue如何實(shí)現(xiàn)網(wǎng)頁(yè)截圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-11-11
詳解Vue路由History mode模式中頁(yè)面無(wú)法渲染的原因及解決
這篇文章主要介紹了詳解Vue路由History mode模式中頁(yè)面無(wú)法渲染的原因及解決,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-09-09
Vue中使用Echarts儀表盤展示實(shí)時(shí)數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了Vue中使用Echarts儀表盤展示實(shí)時(shí)數(shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Vue下拉框回顯并默認(rèn)選中隨機(jī)問(wèn)題
這篇文章主要介紹了Vue下拉框回顯并默認(rèn)選中隨機(jī)問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue中使用Echarts?map圖實(shí)現(xiàn)下鉆至縣級(jí)的思路詳解
這篇文章主要介紹了vue中使用Echarts?map圖實(shí)現(xiàn)下鉆至縣級(jí),需要注意的是,因?yàn)槲沂侵苯訌?vue-cli2?直接跳到?vue-cli4?,還奇怪怎么讀取不到JSON,查找后才知道?vue-cli3?往后的項(xiàng)目基礎(chǔ)架構(gòu)對(duì)比舊版本有些區(qū)別,感興趣的朋友跟隨小編一起看看吧2022-01-01

