Skip to content

TimePicker

Rules

Basic Example

js
const rule = {
    type: "TimePicker",
    field: "section_time",
    title: "Event Time",
    value: ''
}

Props Configuration Examples

Custom Format

js
const rule = {
    type: "TimePicker",
    field: "time",
    title: "Select Time",
    value: null,
    props: {
        format: "HH:mm:ss",
        placeholder: "Select time",
        allowClear: true,
    }
}

12-Hour Format

js
const rule = {
    type: "TimePicker",
    field: "time",
    title: "Select Time",
    value: null,
    props: {
        use12Hours: true,
        format: "hh:mm:ss A",
        placeholder: "Select time",
    }
}

Time Range Selection

js
const rule = {
    type: "TimePicker",
    field: "timeRange",
    title: "Time Range",
    value: null,
    props: {
        type: "time-range",
        format: "HH:mm:ss",
        placeholder: ["Start Time", "End Time"],
        allowClear: true,
    }
}

Limit Time Range

js
const rule = {
    type: "TimePicker",
    field: "workTime",
    title: "Work Time",
    value: null,
    props: {
        format: "HH:mm",
        placeholder: "Select time",
        step: { hour: 1, minute: 15 },
        disabledHours: () => {
            const hours = [];
            for (let i = 0; i < 9; i++) hours.push(i);
            for (let i = 19; i < 24; i++) hours.push(i);
            return hours;
        },
    }
}

Events Examples

Listen to Time Changes

js
const rule = {
    type: "TimePicker",
    field: "time",
    title: "Select Time",
    value: null,
    props: {
        format: "HH:mm:ss",
        placeholder: "Select time",
        allowClear: true,
    },
    on: {
        change: (timeString, time) => {
            console.log('Time changed:', timeString, time);
        },
        clear: () => {
            console.log('Time cleared');
        },
    },
}

Linkage Update After Time Selection

js
const rule = [
    {
        type: "TimePicker",
        field: "startTime",
        title: "Start Time",
        value: null,
        props: {
            format: "HH:mm",
            placeholder: "Select start time",
        },
        inject: true,
        on: {
            change: ($inject, timeString, time) => {
                // Set end time to start time + 2 hours
                if (time) {
                    const endTime = new Date(time);
                    endTime.setHours(endTime.getHours() + 2);
                    $inject.api.setValue('endTime', endTime);
                }
            },
        },
    },
    {
        type: "TimePicker",
        field: "endTime",
        title: "End Time",
        value: null,
        props: {
            format: "HH:mm",
            placeholder: "Select end time",
        },
    },
]

Complete configuration items: arco-design_TimePicker

value: Number | String

Props

ParameterDescriptionTypeDefault
typeSelector type'time' | 'time-range''time'
disabledWhether disabledbooleanfalse
allow-clearWhether to allow clearbooleantrue
readonlyWhether in readonly modebooleanfalse
errorWhether in error statebooleanfalse
formatFormat for displaying time, refer to String Parsing Formatstring'HH:mm:ss'
placeholderPlaceholder textstring-
sizeInput box size'mini' | 'small' | 'medium' | 'large''medium'
popup-containerMount container for popupstring | HTMLElement-
use12-hours12-hour formatbooleanfalse
stepSet selection interval for hour / minute / second{ hour?: number; minute?: number; second?: number;}-
disabled-hoursDisabled hour options() => number[]-
disabled-minutesDisabled minute options(selectedHour?: number) => number[]-
disabled-secondsDisabled second options(selectedHour?: number, selectedMinute?: number) => number[]-
hide-disabled-optionsHide disabled optionsbooleanfalse
disable-confirmDisable confirmation step, when enabled, selecting time directly doesn't require clicking confirm buttonbooleanfalse
positionPopup position'top' | 'tl' | 'tr' | 'bottom' | 'bl' | 'br''bl'
popup-visibleControl popup open or closeboolean-
default-popup-visiblePopup default open or closebooleanfalse
trigger-propsParameters that can be passed to Trigger componentRecord<string, unknown>-
unmount-on-closeWhether to destroy DOM structure after closingbooleanfalse

Events

Event NameDescriptionParameters
changeTriggered when component value changestimeString: string | Array<string | undefined> | undefined time: date | Array<date | undefined> | undefined
selectTriggered when time is selected but component value doesn't changetimeString: string | Array<string | undefined> time: Date | Array<Date | undefined>
clearTriggered when clear button is clicked-
popup-visible-changeTriggered when popup expands or collapsesvisible: boolean

String Parsing Format

FormatOutputDescription
YY21Two-digit year
YYYY2021Four-digit year
M1-12Month, starting from 1
MM01-12Month, two digits
MMMJan-DecAbbreviated month name
MMMMJanuary-DecemberFull month name
D1-31Day of month
DD01-31Day of month, two digits
d0-6Day of week, Sunday is 0
ddSu-SaShortest day name of week
dddSun-SatAbbreviated day name of week
ddddSunday-SaturdayFull day name of week
H0-23Hour
HH00-23Hour, two digits
h1-12Hour, 12-hour format
hh01-12Hour, 12-hour format, two digits
m0-59Minute
mm00-59Minute, two digits
s0-59Second
ss00-59Second, two digits
S0-9Hundreds of milliseconds, one digit
SS00-99Tens of milliseconds, two digits
SSS000-999Milliseconds, three digits
Z-5:00UTC offset
ZZ-0500UTC offset with leading zero
AAM PM-
aam pm-
Do1st... 3stDay of month with ordinal
X1410715640.579Unix timestamp
x1410715640579Unix timestamp in milliseconds

FormCreate is an open-source project released under the MIT License. Free for personal and commercial use.