UNPKG

@atlaskit/datetime-picker

Version:

A date time picker allows the user to select an associated date and time.

66 lines (65 loc) 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertTo24hrTime = convertTo24hrTime; 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; } 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 }; }