@atlaskit/datetime-picker
Version:
A date time picker allows the user to select an associated date and time.
60 lines • 1.32 kB
JavaScript
var map24 = {
'12': '12',
'01': '13',
'02': '14',
'03': '15',
'04': '16',
'05': '17',
'06': '18',
'07': '19',
'08': '20',
'09': '21',
'10': '22',
'11': '23'
};
function formatSemi24(time) {
if (time.length === 1) {
return "0".concat(time, "00");
}
if (time.length === 2) {
return "".concat(time, "00");
}
if (time.length === 3 || time.length === 5) {
return "0".concat(time);
}
return time;
}
function checkHour(hour, meridiem) {
if (hour > '24') {
return null;
}
if (hour === '12' && meridiem === 'a') {
return '00';
}
if (hour < '12' && meridiem === 'p') {
return map24[hour];
}
return hour;
}
function checkMinuteSecond(value) {
if (value > '59') {
return null;
}
return value;
}
export function convertTo24hrTime(time) {
var timeArray = time.toLowerCase().split(/(p|a)/i);
var meridiem = timeArray[1];
var semi24 = formatSemi24(timeArray[0].trim());
var hour = checkHour(semi24.substring(0, 2), meridiem);
var minute = checkMinuteSecond(semi24.substring(2, 4));
var seconds = semi24.length === 6 && checkMinuteSecond(semi24.substring(4, 6));
if (!hour || !minute) {
return null;
}
return {
hour: parseInt(hour, 10),
minute: parseInt(minute, 10),
seconds: parseInt(seconds || '0', 10) || 0
};
}