Date extension

Less is more: short Date extension

by bizamajig

HTML

<script src="http://kooiinc.github.io/JSHelpers/Helpers-min.js"></script>

JavaScript

Helpers.extendDate('EN'); // from Helpers, view code in comment hereafter
var log = Helpers.log2Screen;

var dt = new Date
   ,thismonth = getM(dt.getMonth()+1,dt.getFullYear(),'en')
   ,dashed = '<br>' + '-'.repeat(103) + '<br>';

log( 
      'Today is '
     ,'<b>', dt.format('WDU MM d, yyyy'), '</b>. ' 
     ,'The current time is '
     ,'<b>', dt.format('hh:mi:ss'), '</b>'
     , dashed
     ,'&nbsp;&nbsp;Let\'s enumerate all days for this month ('
     ,'<i>', dt.format('MM yyyy'), '</i>), '
     ,'using '
     , '`[date].add`'
     , dashed
     , thismonth
       .map( function (v) { return v.format('WDU MM d'); } )
       .join('<br>')
 );

function getM(m, y, lang){
 var d = new Date([y,m,1].join('/'))
    ,dates = [new Date(d)] // first date
 ;
 m -= 1;
 while (d.getMonth() == m ){
   dates.push(d.add('d', 1, false, true));
 }
 return dates.slice(0, -1);
}
                                 
// simple date extender code 
// the actual code is loaded from Helper library
/*
function useDTF(lang) {
    lang = lang || 'NL';
    if (!Date.prototype.add) {
      (function() {
        var fragments     = {
                              'd' : 'Date'
                             ,'m' : 'Month'
                             ,'y' : 'FullYear'
                             ,'h' : 'Hours'
                             ,'mi': 'Minutes'
                             ,'s' : 'Seconds'
                             ,'ms': 'MilliSeconds'
                             , get: function(frag,get){ return get && 'get'+this[frag] || 'set'+this[frag]; }
             }
            ,weekdays     = {
                             NL: toEnum(('zondag,maandag,dinsdag,woensdag,donderdag,' +
                                         'vrijdag,zaterdag').split(','))
                            ,EN:  toEnum(('sunday,monday,tuesday,wednesday,thursday,' +
                                          'friday,saturday').split(','))
                            }
            ,months       = {
              ...