// Capital month var CAP_MONTHS = [ false, false, false, true, false, true, false, false, true, false, true, false ]; var MONTH_ABBR = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; var MONTH = [ "January", "February", "March", "April" , "May", "June", "July", "August" , "September", "October", "November", "December" ]; var DAY_ABBR = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ]; var DAY = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]; var getOrdinalSuffix = function(day) { if (day < 4 || ( 20 < day && day < 24 )) { if (day == 1 || day == 21) return "st"; else if (day == 2 || day == 22) return "nd"; else if (day == 3 || day == 23) return "rd"; } else if (day == 31) return "st"; return "th"; }; module.exports = { date_pretty: function( dateObj, plain ) { return dateObj.getDate() + ( plain ? "" : "" ) + getOrdinalSuffix( dateObj.getDate() ) + ( plain ? " " : " " ) + MONTH[ dateObj.getMonth() ] + ", " + dateObj.getFullYear() ; } , date_bMon: function( date ) { return MONTH[ date.getMonth() ]; } , date_sDay: function( date ) { return DAY_ABBR[ date.getDay() ]; } , date_short: function( date ) { // Rearrange the date format var d = date.toDateString().split( " " ); // ddd dd mmm yyyy return d[2] + " " + d[1] + " " + d[3] + " " + d[0]; } , date_comment: function( date ) { var d = date.toDateString().split( " " ); var t = date.toTimeString().split( ":" ); var ampm = "AM"; var h = Number( t[0] ); if( 12 <= h ) { ampm = "PM"; if( h != 12 ) h -= 12; } // h:mm AM/PM dd mmm, yyyy return h + ":" + t[1] + " " + ampm + " " + d[1] + " " + d[3] + ", " + d[2] + " " + d[0]; } , date_tzISODate: function( date ) { var tzo = new Date().getTimezoneOffset() * 6e4; var ndate = new Date( date.getTime() - tzo ); return ndate.toISOString().split( "T" )[0]; } };