MCPcopy
hub / github.com/NUKnightLab/TimelineJS3 / parseDate

Function parseDate

src/js/date/TLDate.js:379–433  ·  view source on GitHub ↗
(str)

Source from the content-addressed store, hash-verified

377}
378
379export function parseDate(str) {
380 if (str.match(ISO8601_SHORT_PATTERN)) {
381 // parse short specifically to avoid timezone offset confusion
382 // most browsers assume short is UTC, not local time.
383 var parts = str.match(ISO8601_SHORT_PATTERN).slice(1);
384 var d = { year: parts[0].replace("+", "") }; // year can be negative
385 if (parts[1]) {
386 d["month"] = parts[1].replace("-", "");
387 }
388 if (parts[2]) {
389 d["day"] = parts[2].replace("-", "");
390 }
391 return d;
392 }
393
394 if (str.match(ISO8601_PATTERN)) {
395 return cls.parseISODate(str);
396 }
397
398 if (str.match(/^\-?\d+$/)) {
399 return { year: str };
400 }
401
402 var parsed = {};
403 if (str.match(/\d+\/\d+\/\d+/)) {
404 // mm/yy/dddd
405 var date = str.match(/\d+\/\d+\/\d+/)[0];
406 str = trim(str.replace(date, ""));
407 var date_parts = date.split("/");
408 parsed.month = date_parts[0];
409 parsed.day = date_parts[1];
410 parsed.year = date_parts[2];
411 }
412
413 if (str.match(/\d+\/\d+/)) {
414 // mm/yy
415 var date = str.match(/\d+\/\d+/)[0];
416 str = trim(str.replace(date, ""));
417 var date_parts = date.split("/");
418 parsed.month = date_parts[0];
419 parsed.year = date_parts[1];
420 }
421
422 if (str.match(":")) {
423 var time_parts = str.split(":");
424 parsed.hour = time_parts[0];
425 parsed.minute = time_parts[1];
426 if (time_parts[2]) {
427 let second_parts = time_parts[2].split(".");
428 parsed.second = second_parts[0];
429 parsed.millisecond = second_parts[1];
430 }
431 }
432 return parsed;
433};
434
435export const BigYear = TLClass.extend({
436 initialize: function(year) {

Callers 2

TLDate.test.jsFile · 0.90

Calls 1

trimFunction · 0.90

Tested by

no test coverage detected