@zenithui/time-picker
Version:
A ZenithUi Time Picker is React component enables users to select a time from a predefined list of options.
41 lines (40 loc) • 1.45 kB
JavaScript
function getInitialHour(time) {
const [inputHour] = time?.split(":") ?? [
"12"
];
const hour = Number.parseInt(inputHour);
return 0 === hour ? "12" : hour > 12 ? (hour - 12).toString().padStart(2, "0") : inputHour;
}
function getInitialPeriod(time) {
const [inputHour] = time?.split(":") ?? [
"12"
];
return Number.parseInt(inputHour) >= 12 ? "PM" : "AM";
}
function convertTo24Hour(hour, period) {
const intHour = Number.parseInt(hour);
if ("PM" === period && 12 !== intHour) return intHour + 12;
if ("AM" === period && 12 === intHour) return "00";
return hour;
}
function convertTo12Hour(hour) {
const intHour = Number.parseInt(hour);
const period = intHour >= 12 ? "PM" : "AM";
const formattedHour = 0 === intHour ? 12 : intHour > 12 ? intHour - 12 : intHour;
return {
hour: formattedHour.toString(),
period
};
}
function formatTime24To12(time24) {
const [hours24, minutes] = time24.split(":").map(Number);
const period = hours24 >= 12 ? "PM" : "AM";
const hours12 = hours24 % 12 || 12;
return `${hours12}:${minutes.toString().padStart(2, "0")} ${period}`;
}
function generateTimeOptions(start, end) {
return Array.from({
length: end - start + 1
}, (_, i)=>(i + start).toString().padStart(2, "0"));
}
export { convertTo12Hour, convertTo24Hour, formatTime24To12, generateTimeOptions, getInitialHour, getInitialPeriod };