1.項(xiàng)目中要求柬甥,傳給后臺的時(shí)間格式為'2019-04-10'這樣的格式决侈,這個(gè)很好實(shí)現(xiàn)超升,el-date-picker上添加value-format="yyyy-MM-dd"即可负蠕;
2.日期限定范圍要求:起始時(shí)間不能大于結(jié)束時(shí)間
實(shí)現(xiàn)代碼:
template部分
<el-form-item label="起始日期:" prop="start">
? ? ? ? <el-date-picker
? ? ? ? ? v-model="start"
? ? ? ? ? type="date"
? ? ? ? ? placeholder="選擇起始日期"
? ? ? ? ? :picker-options="pickerOptionsStart"
? ? ? ? ? format="yyyy-MM-dd"
? ? ? ? ? value-format="yyyy-MM-dd"
? ? ? ? ></el-date-picker>
? ? ? </el-form-item>
? ? ? <el-form-item label="終止日期:" prop="end">
? ? ? ? <el-date-picker
? ? ? ? ? v-model="end"
? ? ? ? ? type="date"
? ? ? ? ? placeholder="選擇終止日期"
? ? ? ? ? :picker-options="pickerOptionsEnd"
? ? ? ? ? format="yyyy-MM-dd"
? ? ? ? ? value-format="yyyy-MM-dd"
? ? ? ? ></el-date-picker>
? ? ? </el-form-item>
js部分:
export default {
? data() {
? ? return {
? ? ? //實(shí)現(xiàn)起始時(shí)間不能大于結(jié)束時(shí)間
? ? ? pickerOptionsStart: {
? ? ? ? disabledDate: time => {
? ? ? ? ? let endDateVal =this.formDate.end
? ? ? ? ??//修改后代碼為:let?endDateVal?=new Date(this.formDate.end).getTime();
? ? ? ? ? if (endDateVal) {
? ? ? ? ? ? return time.getTime() > endDateVal;
? ? ? ? ? }
? ? ? ? }
? ? ? },
? ? ? pickerOptionsEnd: {
? ? ? ? disabledDate: time => {
? ? ? ? ? let beginDateVal =this.formDate.start
? ? ? ? ? //修改后代碼為:let?beginDateVal?=new Date(this.formDate.start).getTime()帅腌;
? ? ? ? ? if (beginDateVal) {
? ? ? ? ? ? return time.getTime() < beginDateVal;
? ? ? ? ? }
? ? ? ? }
? ? ? },
? ? start:'',
????end:''
?? ?};
? },
};
3.現(xiàn)在問題是驰弄,如果我使用了value-format="yyyy-MM-dd",就會導(dǎo)致pickerOptionsStart(以pickerOptionsStart為例)中
[?return time.getTime() > endDateVal]? ?
這段代碼中的endDateVal格式為'2019-04-10'這樣的格式狞膘,但是time.getTime()的格式為13位時(shí)間戳揩懒,就會導(dǎo)致這個(gè)不等式無效;因此我采用的方式是把beginDateVal也變成時(shí)間戳挽封;即把
let endDateVal =this.formDate.end
改為:
let endDateVal =new Date(this.formDate.end).getTime()已球;
這樣就解決了不等式兩側(cè)格式不同的問題,解決了時(shí)間范圍失效的問題