-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
Levareage custom calendar functionality: NUKnightLab/TimelineJS#804
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,157 @@ | ||
/* * Default Gregorian Calendar Formatter | ||
================================================== */ | ||
if(typeof VMM != 'undefined') { | ||
|
||
/* | ||
* Date Format 1.2.3 | ||
* (c) 2007-2009 Steven Levithan <stevenlevithan.com> | ||
* MIT license | ||
* | ||
* Includes enhancements by Scott Trenda <scott.trenda.net> | ||
* and Kris Kowal <cixar.com/~kris.kowal/> | ||
* | ||
* Accepts a date, a mask, or a date and a mask. | ||
* Returns a formatted version of the given date. | ||
* The date defaults to the current date/time. | ||
* The mask defaults to dateFormat.masks.default. | ||
*/ | ||
|
||
var dateFormat = function () { | ||
var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[WLloSZ]|"[^"]*"|'[^']*'/g, | ||
timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, | ||
timezoneClip = /[^-+\dA-Z]/g, | ||
pad = function (val, len) { | ||
val = String(val); | ||
len = len || 2; | ||
while (val.length < len) val = "0" + val; | ||
return val; | ||
}; | ||
|
||
// Regexes and supporting functions are cached through closure | ||
return function (date, mask, utc) { | ||
var dF = dateFormat; | ||
|
||
// You can't provide utc if you skip other args (use the "UTC:" mask prefix) | ||
if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) { | ||
mask = date; | ||
date = undefined; | ||
} | ||
|
||
// Passing date through Date applies Date.parse, if necessary | ||
// Caused problems in IE | ||
// date = date ? new Date(date) : new Date; | ||
if (isNaN(date)) { | ||
trace("invalid date " + date); | ||
//return ""; | ||
} | ||
|
||
mask = String(dF.masks[mask] || mask || dF.masks["default"]); | ||
|
||
// Allow setting the utc argument via the mask | ||
if (mask.slice(0, 4) == "UTC:") { | ||
mask = mask.slice(4); | ||
utc = true; | ||
} | ||
|
||
var _ = utc ? "getUTC" : "get", | ||
d = date[_ + "Date"](), | ||
D = date[_ + "Day"](), | ||
m = date[_ + "Month"](), | ||
y = date[_ + "FullYear"](), | ||
H = date[_ + "Hours"](), | ||
M = date[_ + "Minutes"](), | ||
s = date[_ + "Seconds"](), | ||
L = date[_ + "Milliseconds"](), | ||
W = date.getWeek(), | ||
o = utc ? 0 : date.getTimezoneOffset(), | ||
flags = { | ||
d: d, | ||
dd: pad(d), | ||
ddd: dF.i18n.dayNames[D], | ||
dddd: dF.i18n.dayNames[D + 7], | ||
m: m + 1, | ||
mm: pad(m + 1), | ||
mmm: dF.i18n.monthNames[m], | ||
mmmm: dF.i18n.monthNames[m + 12], | ||
yy: String(y).slice(2), | ||
yyyy: y, | ||
h: H % 12 || 12, | ||
hh: pad(H % 12 || 12), | ||
H: H, | ||
HH: pad(H), | ||
M: M, | ||
MM: pad(M), | ||
s: s, | ||
ss: pad(s), | ||
l: pad(L, 3), | ||
L: pad(L > 99 ? Math.round(L / 10) : L), | ||
t: H < 12 ? "a" : "p", | ||
tt: H < 12 ? "am" : "pm", | ||
T: H < 12 ? "A" : "P", | ||
TT: H < 12 ? "AM" : "PM", | ||
Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""), | ||
o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), | ||
S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10], | ||
W: W | ||
}; | ||
|
||
return mask.replace(token, function ($0) { | ||
return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); | ||
}); | ||
}; | ||
}(); | ||
|
||
// Some common format strings | ||
dateFormat.masks = { | ||
"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", | ||
isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", | ||
isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" | ||
}; | ||
|
||
// Internationalization strings | ||
dateFormat.i18n = { | ||
dayNames: [ | ||
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", | ||
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" | ||
], | ||
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" | ||
] | ||
}; | ||
|
||
// For convenience... | ||
Date.prototype.format = function (mask, utc) { | ||
return dateFormat(this, mask, utc); | ||
}; | ||
|
||
// ************************************************************************************************ | ||
|
||
VMM.Calendar = ({ | ||
|
||
init: function() { | ||
return this; | ||
}, | ||
|
||
format: dateFormat, | ||
|
||
getFullYear: function(date) { | ||
if ( date.getFullYear() < 0 ) { | ||
return Math.abs( date.getFullYear() ).toString() + " B.C."; | ||
} else { | ||
return date.getFullYear(); | ||
} | ||
} | ||
|
||
}).init(); | ||
|
||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.