JavaScript
/* ************************************ */
function runTest() {
debug("test running");
var date = new Date();
debug("the date is", date);
debug("default", date.format("ddd HH:MM tt"));
debug("default", date.format("h:MM TT"));
debug("default", date.format("h:MM tt"));
debug("default", date.format("h:MM tt S"));
debug("default", date.format("yyyy-mm-dd'T'HH:MM:ss"));
debug("default", date.format("yyyy-mm-dd'T'HH:MM:ss Z"));
}
Date.prototype.format = function (mask, utc) {
return dateFormat(this, mask);
};
var dayNames = [
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday"
];
var monthNames = [
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct","Nov", "Dec",
"January", "February", "March", "April", "May", "June", "July","August", "September", "October", "November", "December"
];
var dateFormats = {
"default": "ddd mmm dd yyyy HH:MM:ss",
shortDate: "m/d/yy",
mediumDate: "mmm d, yyyy",
longDate: "mmmm d, yyyy",
fullDate: "dddd, mmmm d, yyyy",
shortTime: "h:MM TT",
mediumTime: "h:MM:ss TT",
longTime: "h:MM:ss TT Z",
isoDate: "yyyy-mm-dd",
isoTime: "HH:MM:ss",
soDateTime: "yyyy-mm-dd'T'HH:MM:ss",
isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};
function zeroPad(n) {
return (n < 10 ? '0' : '') + n;
}
function dateFormat(date1, format, options) {
options = options ||dateFormats;
var date = date1,
i, len = format.length, token,
i2, formatter,
res = '';
for (i=0; i<len; i++) {
token = format.charAt(i);
for (i2=len; i2>i; i2--) {
if (formatter = dateFormatters[format.substring(i, i2)]) {
if...