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));