YADO
Yet Another Date Object (self contained and frozen). Look mama, no this!
by KooiInc MeHere
HTML
<script src="//www.nicon.nl/genericsvc/fiddle/fiddlemeta.js"></script>
JavaScript
/**
----------
Outdated.
----------
*/
waitForHelper(start);
function start () {
Helper.log("test");
var dat = xDate('now', 'EN'), print = Helper.log;
print('Ănitial date: <b>',
String.Format(
dat.format('WD MM d, yyyy, hh:mi ')+'</b><br>(raw) => {0}</b>', dat.get()
)
);
print('<br>A few usage examples<br>', '-'.repeat(120));
print('[Difference calculation]<br><code>dat.diffFrom(\'1991/08/27\')</code> =><br>',
'<code> ',
JSON.stringify(dat.diffFrom('1991/08/27')), '</code>');
print('<code>dat.diffFrom(\'2015/08/27\')</code> =><br>',
'<code> ',
JSON.stringify(dat.diffFrom('2015/08/27')), '</code>');
print('-'.repeat(120),'<br>','[Is date within a leap year?]');
print('<code>xDate(\'now\').inLeapYear()</code>: ',xDate().inLeapYear());
print('<code>xDate(\'2016/01/01\').inLeapYear()</code>: ',xDate('2016/01/01').inLeapYear());
print('<code>xDate(\'2000/01/01\').inLeapYear()</code>: ',xDate('2000/01/01').inLeapYear());
print('-'.repeat(120),'<br>','[Adding/subtracting]');
print('<code>dat.add(3).get(1)</code>: ', dat.add(3).get(1));
print('<code>dat.add(3, dat.units.years).get(1)</code>: ',
dat.add(3, dat.units.years).get(1));
print('<code>dat.add(-5, \'Minutes\').get(1)</code>: ', dat.add(-5, 'Minutes').get(1));
print('-'.repeat(120),'<br>',
'[Retrieve all days in february 2016 (leap year)]<br><code>',
'xDate(\'2016/02/14\').getMonth()</code>:<br>',
xDate('2016/02/14').getMonth()
.map(function (v){ return v.setLang('EN').format('WD, MM d');})
.join('<br>'));
function xDate(fordate, lang) {
fordate = new Date(fordate) || new Date();
lang = lang || 'NL';
var dateX = isNaN(fordate) ? new Date() : fordate,
self = {},
nday ...