UNPKG

12to24

Version:

### 12 to 24 ```javascript const {formatTime} = require('12to24');

45 lines (40 loc) 1.3 kB
function formatTime(time,arg={}){ const {to12} = arg; const match = time.match(/\b(?<hour>0?[0-9]|1[0-9]|2[0-4])\b(?<seperator1>[^A-Za-z0-9]{1,})?(?<minute>[0-5]?[0-9])?(?<seperator2>[^A-Za-z0-9]{1,})?(?<second>[0-5][0-9])?(?<seperator3>[^A-Za-z0-9]{1,})?(?<meridiem>[AM|PM|am|pm]{2})?/); let groups=(match||{}).groups; if(!groups)return; groups.minute=groups.minute?groups.minute:'00'; let {minute,hour} = groups; hour = (hour.length===1?0+hour:hour); minute = minute.length===1?0+minute:minute; let timeString = hour+':'+minute; if(groups.meridiem) { const res = convertTo24({...groups,minute,hour}); hour = res.hour; minute = res.minute; timeString = hour+':'+minute; } if(to12) timeString = convetTo12({...groups,minute,hour}); return timeString; } function convertTo24({hour,minute,meridiem}){ if(['AM','am'].includes(meridiem)){ if(hour==12)hour='00'; } else if(hour<12) hour=12+parseInt(hour); return {hour,minute}; } function convetTo12({hour,minute,meridiem}){ if(!meridiem) meridiem = 'AM'; if(['00','0'].includes(hour))hour='12'; else if(hour>12){ hour=(parseInt(hour)-12).toString(); if(hour.length===1)hour='0'+hour; meridiem = 'PM'; } return hour+':'+minute+' '+meridiem; } module.exports={ formatTime }