(str)
| 377 | } |
| 378 | |
| 379 | export 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 | |
| 435 | export const BigYear = TLClass.extend({ |
| 436 | initialize: function(year) { |
no test coverage detected