Skip to content

Instantly share code, notes, and snippets.

@krizpoon
Last active August 29, 2015 14:08
Show Gist options
  • Save krizpoon/9010daa28f719865d976 to your computer and use it in GitHub Desktop.
Save krizpoon/9010daa28f719865d976 to your computer and use it in GitHub Desktop.
Javascript Date Utils
Date.prototype.format = function(pattern, utc)
{
if (!pattern) return pattern;
var MonthsShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var MonthsLong = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var yyyy = this[utc?'getUTCFullYear':'getFullYear']();
var MM = this[utc?'getUTCMonth' :'getMonth']() + 1;
var dd = this[utc?'getUTCDate' :'getDate']();
var HH = this[utc?'getUTCHours' :'getHours']();
var mm = this[utc?'getUTCMinutes' :'getMinutes']();
var ss = this[utc?'getUTCSeconds' :'getSeconds']();
var yy = yyyy.toString().slice(-2);
var apm = HH >= 12? 'PM': 'AM';
var hh = HH > 12? HH - 12: HH;
var tz = utc? 0: this.getTimezoneOffset();
var tzSgn = tz < 0? '-': '+';
var tzHr = ('0'+parseInt(Math.abs(tz/60))).slice(-2);
var tzMin = ('0'+parseInt(Math.abs(tz%60))).slice(-2);
var ret = pattern;
ret = ret.replace('yyyy', yyyy);
ret = ret.replace('yy', yy);
ret = ret.replace('MMMM', MonthsLong[MM-1]);
ret = ret.replace('MMM', MonthsShort[MM-1]);
ret = ret.replace('MM', ('0'+MM).slice(-2));
ret = ret.replace('M', MM);
ret = ret.replace('dd', ('0'+dd).slice(-2));
ret = ret.replace('d', dd);
ret = ret.replace('HH', ('0'+HH).slice(-2));
ret = ret.replace('H', HH);
ret = ret.replace('hh', ('0'+hh).slice(-2));
ret = ret.replace('h', hh);
ret = ret.replace('mm', ('0'+mm).slice(-2));
ret = ret.replace('m', mm);
ret = ret.replace('ss', ('0'+ss).slice(-2));
ret = ret.replace('s', ss);
ret = ret.replace('aaaa', apm).replace('aaa', apm).replace('aa', apm).replace('a', apm);
ret = ret.replace('z', 'GMT' + tzSgn + tzHr + ':' + tzMin);
ret = ret.replace('Z', tzSgn + tzHr + tzMin);
ret = ret.replace('XXX', tzSgn + tzHr + ':' + tzMin);
ret = ret.replace('XX', tzSgn + tzHr + tzMin);
ret = ret.replace('X', tzSgn + tzHr);
return ret;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment