mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-04-27 03:00:12 -04:00
Add iso8601 polyfill necessary for timetext in old browsers.
This commit is contained in:
@@ -450,6 +450,7 @@ module["reddit"] = LocalizedModule("reddit.js",
|
||||
"lib/jquery.cookie.js",
|
||||
"lib/jquery.url.js",
|
||||
"lib/backbone-1.0.0.js",
|
||||
"lib/iso8601.js",
|
||||
"templates.js",
|
||||
"scrollupdater.js",
|
||||
"timetext.js",
|
||||
|
||||
41
r2/r2/public/static/js/lib/iso8601.js
Normal file
41
r2/r2/public/static/js/lib/iso8601.js
Normal file
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
* Date.parse with progressive enhancement for ISO 8601 <https://github.com/csnover/js-iso8601>
|
||||
* © 2011 Colin Snover <http://zetafleet.com>
|
||||
* Released under MIT license.
|
||||
*/
|
||||
(function (Date, undefined) {
|
||||
var origParse = Date.parse, numericKeys = [ 1, 4, 5, 6, 7, 10, 11 ];
|
||||
Date.parse = function (date) {
|
||||
var timestamp, struct, minutesOffset = 0;
|
||||
|
||||
// ES5 §15.9.4.2 states that the string should attempt to be parsed as a Date Time String Format string
|
||||
// before falling back to any implementation-specific date parsing, so that’s what we do, even if native
|
||||
// implementations could be faster
|
||||
// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm
|
||||
if ((struct = /^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(date))) {
|
||||
// avoid NaN timestamps caused by “undefined” values being passed to Date.UTC
|
||||
for (var i = 0, k; (k = numericKeys[i]); ++i) {
|
||||
struct[k] = +struct[k] || 0;
|
||||
}
|
||||
|
||||
// allow undefined days and months
|
||||
struct[2] = (+struct[2] || 1) - 1;
|
||||
struct[3] = +struct[3] || 1;
|
||||
|
||||
if (struct[8] !== 'Z' && struct[9] !== undefined) {
|
||||
minutesOffset = struct[10] * 60 + struct[11];
|
||||
|
||||
if (struct[9] === '+') {
|
||||
minutesOffset = 0 - minutesOffset;
|
||||
}
|
||||
}
|
||||
|
||||
timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);
|
||||
}
|
||||
else {
|
||||
timestamp = origParse ? origParse(date) : NaN;
|
||||
}
|
||||
|
||||
return timestamp;
|
||||
};
|
||||
}(Date));
|
||||
Reference in New Issue
Block a user