Date Picker

Forms

Picker ngày tháng tích hợp popover, hỗ trợ 3 chế độ: single, range và time-only. Xây dựng trên react-day-picker và Base UI Popover với time picker tuỳ chỉnh.

Cài đặt

Import

Single Date

Chọn một ngày duy nhất, hiển thị theo định dạng dd/MM/yyyy.

Date Range

Chọn khoảng thời gian từ ngày đến ngày.

Time Only

Chỉ chọn giờ, không hiện lịch.

Date + Time

Kết hợp chọn ngày và giờ trong cùng một picker.

Range + Time

Chọn khoảng ngày kèm giờ riêng cho ngày bắt đầu và ngày kết thúc.

Time Format

3 định dạng giờ: chỉ giờ, giờ:phút, hoặc giờ:phút:giây.

HH (chỉ giờ)

HH:mm

HH:mm:ss

Time Picker Style

2 kiểu UI chọn giờ: native input type="time" hoặc dropdown selects.

timePickerStyle="input"

timePickerStyle="select"

Chặn ngày

Giới hạn ngày có thể chọn hoặc vô hiệu hóa toàn bộ picker.

disablePastDates

disabled

Trạng thái

Hỗ trợ description và error message bên dưới picker.

Chọn ngày bắt đầu của dự án

Ngày không hợp lệ

API Reference

PropTypeDefaultMô tả
captionLayout"label" | "dropdown" | "dropdown-months" | "dropdown-years" | undefined"undefined"Hiển thị tháng/năm dưới dạng text label hoặc dropdown
mode"single" | "range" | "time-only""single"Chế độ picker: chọn một ngày, khoảng ngày, hoặc chỉ giờ
dateDate | DateRangeGiá trị ngày đang chọn (controlled)
onDateChange(date: Date | DateRange | undefined) => voidCallback khi ngày thay đổi
onChange(date: Date | DateRange | undefined) => voidAlias của onDateChange — tương thích với React Hook Form
timeValuestringGiá trị giờ dạng string, chỉ dùng ở mode time-only
onTimeChange(time: string) => voidCallback khi giờ thay đổi (mode time-only)
labelstringLabel hiển thị trên picker
placeholderstring"Select date..."Placeholder khi chưa có giá trị
showTimebooleanfalseHiện time picker kèm calendar (chỉ mode single)
timeFormat"HH" | "HH:mm" | "HH:mm:ss""HH:mm:ss"Định dạng giờ hiển thị
timePickerStyle"input" | "select""select"Kiểu UI chọn giờ: native input hoặc dropdown selects
disablePastDatesbooleanfalseChặn chọn ngày trong quá khứ
disabledbooleanfalseVô hiệu hóa toàn bộ picker
requiredbooleanĐánh dấu trường bắt buộc
descriptionstringMô tả phụ bên dưới picker (ẩn khi có error)
errorstringThông báo lỗi bên dưới picker (thay thế description)
classNamestringClass CSS tuỳ chỉnh cho wrapper ngoài cùng