# DatetimePicker

It is used to select time, supports time dimensions such as date and hour, and is usually used in conjunction with the popup layer component.

# select full time

value is the timestamp.

<press-datetime-picker
   type="datetime"
   :value="currentDate"
   :min-date="minDate"
   :max-date="maxDate"
   @input="onInput"
/>
export default {
   data() {
     return {
       minDate: new Date(). getTime(),
       maxDate: new Date(2099, 10, 1). getTime(),
       currentDate: new Date(). getTime(),
     };
   },
   methods: {
     onInput(event) {
       this. currentDate = event;
     },
   },
};

# select date (year month day)

value is the timestamp, passed to the formatter function to process the option text.

<press-datetime-picker
   type="date"
   :value="currentDate"
   :min-date="minDate"
   :filter="filter"
   :formatter="formatter"
   @input="onInput"
/>
export default {
   data() {
     return {
       isOpen: false,
       minHour: 10,
       maxHour: 20,
       minDate: new Date(). getTime(),
       maxDate: new Date(2099, 10, 1). getTime(),
       currentDate: new Date(). getTime(),

       formatter(type, val) {
         if (type === 'year') {
           return `${val}year`;
         } if (type === 'month') {
           return `${val}month`;
         } if (type === 'day') {
           return `${val}day`;
         } if (type === 'hour') {
           return `${val}`;
         } if (type === 'minute') {
           return `${val} points`;
         }
       },
       filter(type, options) {
         if (type === 'minute') {
           return options. filter(option => option % 5 === 0);
         }
         return options;
       },
     };
   },
   methods: {
     onInput(event) {
       console.log('onInput.event', event);
       this. currentDate = event;
     },
   },
};

# Select date (year, month)

value is the timestamp.

<press-datetime-picker
   type="year-month"
   :value="currentDate"
   :min-date="minDate"
   @input="onInput"
/>
export default {
   data() {
     return {
       minDate: new Date(). getTime(),
       currentDate: new Date(). getTime(),
     };
   },
   methods: {
     onInput(event) {
       this. currentDate = event;
     },
   },
};

# selection period

value is a string.

<press-datetime-picker
   type="time"
   :value="currentTime"
   :min-hour="minHour"
   :max-hour="maxHour"
   @input="onInputTime"
/>
export default {
   data() {
     return {
       minHour: 10,
       maxHour: 20,
       currentTime: '12:00',
     };
   },
   methods: {
     onInputTime(event) {
       console.log('onInputTime.event', event);
       this.currentTime = event;
     },
   },
};

# option filter

By passing in the filter function, the option array can be filtered to achieve a custom time interval.

<press-datetime-picker
   type="time"
   :value="currentTime"
   :filter="filter"
/>
Page({
   data: {
     currentTime: '12:00',
     filter(type, options) {
       if (type === 'minute') {
         return options. filter((option) => option % 5 === 0);
       }

       return options;
     },
   },
});

# API

# Props

Parameter Description Type Default
value currently selected value string | number -
type type, optional values are date time year-month
Dynamic modification is not recommended
string datetime
min-date optional minimum date, accurate to minutes number ten years ago
max-date optional maximum date in minutes number ten years later
min-hour Optional minimum hour for time type number 0
max-hour optional maximum hour for time type number 23
min-minute optional minimum minute for time type number 0
max-minute Optional maximum minute for time type number 59
filter option filter function (type possible values are year, month, day, hour, minute) (type, values) => values -
formatter option formatting function (type possible values are year, month, day, hour, minute) (type, value) => value -
title top bar title string ''
show-toolbar Whether to show the top bar boolean true
loading Whether to show loading status boolean false
item-height item height number 44
confirm-button-text confirm button text string confirm
cancel-button-text cancel button text string cancel
visible-item-count number of visible items number 6

# Events

Event Name Description Callback Parameters
input event fired when value changes current value
change event fired when the value changes component instance
confirm event triggered when the done button is clicked current value
cancel Event fired when the cancel button is clicked -

# change event

In the change event, the component instance can be obtained, and the component can be updated accordingly:

function description
getColumnValue(index) Get the selected value in the corresponding column
setColumnValue(index, value) Set the selected value in the corresponding column
getColumnValues(index) Get all the alternative values in the corresponding column
setColumnValues(index, values) set all alternative values in the corresponding column
getValues() Get the selected values in all columns and return an array
setValues(values) values is an array, set the selected values ​​in all columns
横屏