hasModule = (typeof module !== 'undefined'),
paramsToParse = 'months|monthsShort|monthsParse|weekdays|weekdaysShort|longDateFormat|calendar|relativeTime|ordinal|meridiem'.split('|'),
i,
+ jsonRegex = /\/?Date\((\d+)((?:\-|\+)\d+)?\)\/?/i,
charactersToReplace = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|dddd?|do?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|zz?|ZZ?|LT|LL?L?L?)/g,
nonuppercaseLetters = /[^A-Z]/g,
timezoneRegex = /\([A-Za-z ]+\)|:[0-9]{2} [A-Z]{3} /g,
if (input === null) {
return null;
}
- var date;
+ var date, matched;
// parse UnderscoreDate object
if (input && input._d instanceof Date) {
date = new Date(+input._d);
} else {
date = makeDateFromStringAndFormat(input, format);
}
+ // evaluate it as a JSON-encoded date
+ } else if (matched = jsonRegex.exec(input)) {
+ date = new Date(parseInt(matched[1]));
// parse everything else
} else {
date = input === undefined ? new Date() :
ok(moment("Mon, 25 Dec 1995 13:30:00 GMT").native() instanceof Date, "Mon, 25 Dec 1995 13:30:00 GMT");
});
+test("string without format - json", 4, function() {
+ ok(moment("Date(1325132654000)").valueOf() === 1325132654000, "Date(1325132654000)");
+ ok(moment("/Date(1325132654000)/").valueOf() === 1325132654000, "/Date(1325132654000)/");
+ ok(moment("/Date(1325132654000+0700)/").valueOf() === 1325132654000, "/Date(1325132654000+0700)/");
+ ok(moment("/Date(1325132654000-0700)/").valueOf() === 1325132654000, "/Date(1325132654000-0700)/");
+});
test("string with format", 18, function() {
moment.lang('en');