JSFiddle - React, Tailwind, and code Playground
by nosir
JavaScript
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var getDate = function (dateString, full) {
// do not use "new Date('yyyy-mm-dd...')"
// this only works for chrome
// old browsers don't support advanced date parse
var str = dateString.toLowerCase(),
parts = str.split('t'),
partsYMD = parts[0].split('-'),
partsHMS = parts.length > 1 ? parts[1].split('+')[0].split(':') : [],
dateObj,
isPM,
isMidday,
time,
hour,
min,
year,
date,
mon;
partsHMS = partsHMS.length === 3 ? partsHMS : [0, 0, 0];
dateObj = new Date(partsYMD[0], partsYMD[1] - 1, partsYMD[2], partsHMS[0], partsHMS[1], partsHMS[2]);
year = dateObj.getFullYear();
date = dateObj.getDate();
date = date < 10 ? ('0' + date) : date;
mon = months[dateObj.getMonth()];
isPM = dateObj.getHours() >= 12;
isMidday = dateObj.getHours() === 12;
hour = ('0' + (dateObj.getHours() - (isPM && !isMidday ? 12 : 0))).slice(-2);
min = ('0' + dateObj.getMinutes()).slice(-2);
time = hour + ':' + min + ' ' + (isPM ? 'PM' : 'AM') + ' AEST';
return mon + ' ' + date + ', ' + year + (full ? (' ' + time) : '');
}
alert(getDate('1989-9-9'));
alert(getDate('1989-9-9T13:23:34', true));