在Vue中,我們可以使用props來傳遞數(shù)據(jù),包括時(shí)間。但是,時(shí)間在JavaScript中是以時(shí)間戳的形式存在的,我們需要將時(shí)間戳轉(zhuǎn)換為日期格式進(jìn)行傳遞和顯示。
props:{ time: { type: Number, required: true } }
在組件中,我們可以通過計(jì)算屬性或者過濾器將時(shí)間戳轉(zhuǎn)換為日期格式。這里以計(jì)算屬性的方式為例:
computed: { date() { return new Date(this.time).toLocaleString() } }
通過這樣的計(jì)算屬性,我們可以將時(shí)間戳格式的time轉(zhuǎn)換為日期格式的date。在模板中使用{{date}}即可顯示日期。
當(dāng)我們需要傳遞日期格式的時(shí)間時(shí),我們可以直接將日期格式的字符串傳入props中:
props: { time: { type: String, required: true } }
在父組件中,我們傳入格式為YYYY-MM-DD HH:mm:ss的字符串:
<template> <child-component time="2022-01-01 00:00:00"></child-component> </template>
在子組件中,我們可以直接使用傳入的時(shí)間:
<template> <div>{{time}}</div> </template>
但是,有時(shí)我們需要對(duì)顯示的日期格式進(jìn)行修改,或者需要對(duì)時(shí)間進(jìn)行計(jì)算。在這種情況下,我們可以使用moment.js這個(gè)JavaScript庫。
首先,我們需要安裝moment.js:
npm install moment --save
然后,在組件內(nèi)引入moment庫:
import moment from 'moment'
使用moment進(jìn)行日期格式轉(zhuǎn)換:
computed: { time() { return moment(this.time).format('YYYY-MM-DD HH:mm:ss') } }
使用moment進(jìn)行日期計(jì)算:
computed: { futureTime() { return moment(this.time).add(1, 'days').format('YYYY-MM-DD HH:mm:ss') } }
在這個(gè)例子中,我們將傳入的時(shí)間加上1天并轉(zhuǎn)換為日期格式的字符串。
總結(jié)一下,Vue中傳遞時(shí)間可以使用props,傳遞時(shí)間戳和日期格式的字符串都可以。在需要對(duì)日期格式以及時(shí)間進(jìn)行修改的時(shí)候可以使用moment.js這個(gè)庫。