You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
4.1 KiB
113 lines
4.1 KiB
<template> |
|
<view class="page container"> |
|
<uni-card :is-shadow="false" is-full> |
|
<text class="uni-h6">可以同时选择日期和时间的选择器</text> |
|
</uni-card> |
|
<uni-section :title="'日期用法:' + dateString" type="line"></uni-section> |
|
<view class="example-body"> |
|
<uni-datetime-picker type="date" :clear-icon="false" v-model="dateString" @maskClick="maskClick" /> |
|
</view> |
|
<uni-section :title="'日期时间用法:' + datetimeString" type="line"></uni-section> |
|
<view class="example-body"> |
|
<uni-datetime-picker type="datetime" :start="start" :end="end" v-model="datetimeString" @change="change" /> |
|
</view> |
|
<uni-section :title="'日期范围用法:' + '[' + dateRange + ']'" type="line"></uni-section> |
|
<view class="example-body"> |
|
<uni-datetime-picker v-model="dateRange" type="daterange" @maskClick="maskClick" /> |
|
</view> |
|
<uni-section :title="'日期时间范围用法:' + '[' + datetimeRange + ']' " type="line"></uni-section> |
|
<view class="example-body"> |
|
<uni-datetime-picker v-model="datetimeRange" type="datetimerange" rangeSeparator="至" /> |
|
</view> |
|
<uni-section :title="'时间戳用法:' + dateTimestamp" type="line"></uni-section> |
|
<view class="example-body"> |
|
<uni-datetime-picker returnType="timestamp" v-model="dateTimestamp" @change="change" /> |
|
</view> |
|
<uni-section :title="'date 对象用法:' + dateInstance" type="line"></uni-section> |
|
<view class="example-body"> |
|
<uni-datetime-picker type="datetime" returnType="date" v-model="dateInstance" @change="change" /> |
|
</view> |
|
<uni-section :title="'插槽用法:' + dateString" type="line"></uni-section> |
|
<view class="example-body"> |
|
<uni-datetime-picker v-model="dateString">我是一个插槽,点击我</uni-datetime-picker> |
|
</view> |
|
<uni-section :title="'无边框用法:' + dateString" type="line"></uni-section> |
|
<view class="example-body"> |
|
<uni-datetime-picker v-model="dateString" :border="false" /> |
|
</view> |
|
<uni-section :title="'隐藏清除按钮用法:' + dateString" type="line"></uni-section> |
|
<view class="example-body"> |
|
<uni-datetime-picker v-model="dateString" :clearIcon="false" /> |
|
</view> |
|
<uni-section :title="'disabled用法:' + dateString" type="line"></uni-section> |
|
<view class="example-body"> |
|
<uni-datetime-picker v-model="dateString" disabled /> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
export default { |
|
data() { |
|
return { |
|
dateString: this.getDateTime(new Date()), |
|
datetimeString: this.getDateTime(new Date()), |
|
dateTimestamp: Date.now(), |
|
dateInstance: new Date(), |
|
dateRange: [this.getDate(Date.now() - 5 * 24 * 3600000), this.getDate(Date.now() + 5 * 24 * 3600000)], |
|
datetimeRange: [this.getDateTime(Date.now() - 5 * 24 * 3600000), this.getDateTime(Date.now() + 5 * 24 * 3600000)], |
|
start: Date.now() - 10 * 24 * 3600000, |
|
end: Date.now() + 10 * 24 * 3600000 |
|
} |
|
}, |
|
watch: { |
|
datetimeString() { |
|
console.log('日期时间单选:', this.datetimeString); |
|
}, |
|
dateRange() { |
|
console.log('日期范围选:', this.dateRange); |
|
}, |
|
datetimeRange() { |
|
console.log('日期时间范围选:', this.datetimeRange); |
|
} |
|
}, |
|
methods: { |
|
change(e) { |
|
console.log('----change事件:', e); |
|
}, |
|
maskClick(e) { |
|
console.log('----maskClick事件:', e); |
|
}, |
|
getDateTime(date){ |
|
return `${this.getDate(date)} ${this.getTime(date)}` |
|
}, |
|
getDate(date){ |
|
date = new Date(date) |
|
const year = date.getFullYear() |
|
const month = date.getMonth()+1 |
|
const day = date.getDate() |
|
return `${year}-${this.addZero(month)}-${this.addZero(day)}` |
|
}, |
|
getTime(date){ |
|
date = new Date(date) |
|
const hour = date.getHours() |
|
const minute = date.getMinutes() |
|
const second = date.getSeconds() |
|
return this.hideSecond ? `${this.addZero(hour)}:${this.addZero(minute)}` : `${this.addZero(hour)}:${this.addZero(minute)}:${this.addZero(second)}` |
|
}, |
|
addZero(num) { |
|
if (num < 10) { |
|
num = `0${num}` |
|
} |
|
return num |
|
} |
|
} |
|
} |
|
</script> |
|
|
|
<style lang="scss"> |
|
.example-body { |
|
background-color: #fff; |
|
padding: 10px; |
|
} |
|
</style>
|
|
|