Vue el-table組件如何實(shí)現(xiàn)將日期格式化
vue el-table組件將日期格式化
項(xiàng)目需要實(shí)現(xiàn)一個(gè)將后端時(shí)間數(shù)據(jù)顯示在前端 Table 中的場(chǎng)景,但后端響應(yīng)的數(shù)據(jù)并不是我們想要的規(guī)范格式,因此,需要前端來(lái)格式化這個(gè)時(shí)間變量。
從后端拿到的數(shù)據(jù)如下所示。
{
?? ?// 省略不必要的字段;
?? ?"created_at": "2022-07-08T08:58:08+0000",
? ? "updated_at": "2022-07-08T08:58:10+0000",
?? ?// 省略不必要的字段
}這種時(shí)間格式來(lái)自于國(guó)際標(biāo)準(zhǔn)化組織的國(guó)際標(biāo)準(zhǔn)——ISO 8601,全稱為《數(shù)據(jù)存儲(chǔ)和交換形式·信息交換·日期和時(shí)間的表示方法》。
原文規(guī)定了標(biāo)準(zhǔn)的日期-時(shí)間表示方法,即,當(dāng)日期和實(shí)踐合并表示時(shí),需要在時(shí)間前面加一大寫字母T,如要表示北京時(shí)間2004年5月3日下午5點(diǎn)30分8秒,可以寫成 2004-05-03T17:30:08+08:00 或 20040503T173008+08。
格式化時(shí)間字符串的 js 方法如下所示:
formatDate(row, column) {
? ? ? // 獲取單元格數(shù)據(jù)
? ? ? 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()
}當(dāng)然,在表格中需要雙向綁定一下。
<el-table> ?? ?<el-table-column ? ? ? ? label="提交時(shí)間" ? ? ? ? min-width="15%" ? ? ? ? align="center" ? ? ? ? prop="createdTime" ? ? ? ? :formatter="formatDate"> ? ? </el-table-column> </el-table>
這樣一來(lái),時(shí)間就可以正常顯示了。
vue對(duì)時(shí)間進(jìn)行格式化輸出,以el-table為例
后端返回的時(shí)間數(shù)據(jù)格式為:
2022-07-05T09:57:39.000Z
需要格式化為:
2018-08-07 00:00:00
解決方法
安裝dayjs包
npm install dayjs -s
在需要格式化時(shí)間的頁(yè)面引入,也可以全局引入,我這里在單頁(yè)面引入:
import dayjs from "dayjs"
在methods中寫一個(gè)轉(zhuǎn)換方法:
methods:{
?timeTranslate (val) {
? ? return dayjs(val).format('YYYY-MM-DD HH:mm:ss')
?},
}這里我是放在el-table中顯示的
?? ??? ??? ?<el-table-column label="協(xié)議創(chuàng)建時(shí)間" align="center" ?prop="createdAt" width="200%">
?? ??? ??? ??? ??? ??? ?
? ? ? ? ? ? ? <template slot-scope="scope">
? ? ? ? ? ? ? ? {{timeTranslate(scope.row.createdAt)}}
? ? ? ? ? ? ? </template>
?? ??? ??? ??? ??? ?</el-table-column>成功顯示
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)水波漣漪效果的點(diǎn)擊反饋指令
鼠標(biāo)移入時(shí)的小手、鼠標(biāo)點(diǎn)擊時(shí)按鈕下壓彈起的動(dòng)畫、觸屏應(yīng)用點(diǎn)擊時(shí)的屏幕震動(dòng),這些效果也被統(tǒng)稱為點(diǎn)擊反饋,雖然看似是應(yīng)用中的細(xì)枝末節(jié),但是只要稍微投入一點(diǎn)點(diǎn)心思,帶來(lái)的用戶體驗(yàn)提升是十分明顯的,這里作者為小伙伴們推薦一種作者最喜歡的點(diǎn)擊反饋效果。2021-05-05
Vue2實(shí)現(xiàn)圖片的拖拽,縮放和旋轉(zhuǎn)效果的示例代碼
這篇文章主要為大家介紹了如何基于vue2?實(shí)現(xiàn)圖片的拖拽、旋轉(zhuǎn)、鼠標(biāo)滾動(dòng)放大縮小等功能。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-11-11
淺談基于Vue.js的移動(dòng)組件庫(kù)cube-ui
這篇文章主要介紹了基于Vue.js的移動(dòng)組件庫(kù)cube-ui,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
vue使用ajax獲取后臺(tái)數(shù)據(jù)進(jìn)行顯示的示例
今天小編就為大家分享一篇vue使用ajax獲取后臺(tái)數(shù)據(jù)進(jìn)行顯示的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08

