summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/datetime/strtotime.js.map
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/locutus/php/datetime/strtotime.js.map')
-rw-r--r--node_modules/locutus/php/datetime/strtotime.js.map1
1 files changed, 0 insertions, 1 deletions
diff --git a/node_modules/locutus/php/datetime/strtotime.js.map b/node_modules/locutus/php/datetime/strtotime.js.map
deleted file mode 100644
index 51b62a2..0000000
--- a/node_modules/locutus/php/datetime/strtotime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../src/php/datetime/strtotime.js"],"names":["module","exports","strtotime","text","now","parsed","match","today","year","date","days","ranges","len","times","regex","i","fail","replace","toLowerCase","pattern","RegExp","join","Date","parseInt","getFullYear","getMonth","getDate","isNaN","getTime","parse","lastNext","type","range","modifier","diff","day","getDay","setDate","process","val","splt","split","substring","typeIsNumber","test","ago","num","hasOwnProperty","length"],"mappings":"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","file":"strtotime.js","sourcesContent":["module.exports = function strtotime (text, now) {\n // discuss at: http://locutus.io/php/strtotime/\n // original by: Caio Ariede (http://caioariede.com)\n // improved by: Kevin van Zonneveld (http://kvz.io)\n // improved by: Caio Ariede (http://caioariede.com)\n // improved by: A. Matías Quezada (http://amatiasq.com)\n // improved by: preuter\n // improved by: Brett Zamir (http://brett-zamir.me)\n // improved by: Mirko Faber\n // input by: David\n // bugfixed by: Wagner B. Soares\n // bugfixed by: Artur Tchernychev\n // bugfixed by: Stephan Bösch-Plepelits (http://github.com/plepe)\n // note 1: Examples all have a fixed timestamp to prevent\n // note 1: tests to fail because of variable time(zones)\n // example 1: strtotime('+1 day', 1129633200)\n // returns 1: 1129719600\n // example 2: strtotime('+1 week 2 days 4 hours 2 seconds', 1129633200)\n // returns 2: 1130425202\n // example 3: strtotime('last month', 1129633200)\n // returns 3: 1127041200\n // example 4: strtotime('2009-05-04 08:30:00 GMT')\n // returns 4: 1241425800\n // example 5: strtotime('2009-05-04 08:30:00+00')\n // returns 5: 1241425800\n // example 6: strtotime('2009-05-04 08:30:00+02:00')\n // returns 6: 1241418600\n // example 7: strtotime('2009-05-04T08:30:00Z')\n // returns 7: 1241425800\n\n var parsed\n var match\n var today\n var year\n var date\n var days\n var ranges\n var len\n var times\n var regex\n var i\n var fail = false\n\n if (!text) {\n return fail\n }\n\n // Unecessary spaces\n text = text.replace(/^\\s+|\\s+$/g, '')\n .replace(/\\s{2,}/g, ' ')\n .replace(/[\\t\\r\\n]/g, '')\n .toLowerCase()\n\n // in contrast to php, js Date.parse function interprets:\n // dates given as yyyy-mm-dd as in timezone: UTC,\n // dates with \".\" or \"-\" as MDY instead of DMY\n // dates with two-digit years differently\n // etc...etc...\n // ...therefore we manually parse lots of common date formats\n var pattern = new RegExp([\n '^(\\\\d{1,4})',\n '([\\\\-\\\\.\\\\/:])',\n '(\\\\d{1,2})',\n '([\\\\-\\\\.\\\\/:])',\n '(\\\\d{1,4})',\n '(?:\\\\s(\\\\d{1,2}):(\\\\d{2})?:?(\\\\d{2})?)?',\n '(?:\\\\s([A-Z]+)?)?$'\n ].join(''))\n match = text.match(pattern)\n\n if (match && match[2] === match[4]) {\n if (match[1] > 1901) {\n switch (match[2]) {\n case '-':\n // YYYY-M-D\n if (match[3] > 12 || match[5] > 31) {\n return fail\n }\n\n return new Date(match[1], parseInt(match[3], 10) - 1, match[5],\n match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000\n case '.':\n // YYYY.M.D is not parsed by strtotime()\n return fail\n case '/':\n // YYYY/M/D\n if (match[3] > 12 || match[5] > 31) {\n return fail\n }\n\n return new Date(match[1], parseInt(match[3], 10) - 1, match[5],\n match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000\n }\n } else if (match[5] > 1901) {\n switch (match[2]) {\n case '-':\n // D-M-YYYY\n if (match[3] > 12 || match[1] > 31) {\n return fail\n }\n\n return new Date(match[5], parseInt(match[3], 10) - 1, match[1],\n match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000\n case '.':\n // D.M.YYYY\n if (match[3] > 12 || match[1] > 31) {\n return fail\n }\n\n return new Date(match[5], parseInt(match[3], 10) - 1, match[1],\n match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000\n case '/':\n // M/D/YYYY\n if (match[1] > 12 || match[3] > 31) {\n return fail\n }\n\n return new Date(match[5], parseInt(match[1], 10) - 1, match[3],\n match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000\n }\n } else {\n switch (match[2]) {\n case '-':\n // YY-M-D\n if (match[3] > 12 || match[5] > 31 || (match[1] < 70 && match[1] > 38)) {\n return fail\n }\n\n year = match[1] >= 0 && match[1] <= 38 ? +match[1] + 2000 : match[1]\n return new Date(year, parseInt(match[3], 10) - 1, match[5],\n match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000\n case '.':\n // D.M.YY or H.MM.SS\n if (match[5] >= 70) {\n // D.M.YY\n if (match[3] > 12 || match[1] > 31) {\n return fail\n }\n\n return new Date(match[5], parseInt(match[3], 10) - 1, match[1],\n match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000\n }\n if (match[5] < 60 && !match[6]) {\n // H.MM.SS\n if (match[1] > 23 || match[3] > 59) {\n return fail\n }\n\n today = new Date()\n return new Date(today.getFullYear(), today.getMonth(), today.getDate(),\n match[1] || 0, match[3] || 0, match[5] || 0, match[9] || 0) / 1000\n }\n\n // invalid format, cannot be parsed\n return fail\n case '/':\n // M/D/YY\n if (match[1] > 12 || match[3] > 31 || (match[5] < 70 && match[5] > 38)) {\n return fail\n }\n\n year = match[5] >= 0 && match[5] <= 38 ? +match[5] + 2000 : match[5]\n return new Date(year, parseInt(match[1], 10) - 1, match[3],\n match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000\n case ':':\n // HH:MM:SS\n if (match[1] > 23 || match[3] > 59 || match[5] > 59) {\n return fail\n }\n\n today = new Date()\n return new Date(today.getFullYear(), today.getMonth(), today.getDate(),\n match[1] || 0, match[3] || 0, match[5] || 0) / 1000\n }\n }\n }\n\n // other formats and \"now\" should be parsed by Date.parse()\n if (text === 'now') {\n return now === null || isNaN(now)\n ? new Date().getTime() / 1000 | 0\n : now | 0\n }\n if (!isNaN(parsed = Date.parse(text))) {\n return parsed / 1000 | 0\n }\n // Browsers !== Chrome have problems parsing ISO 8601 date strings, as they do\n // not accept lower case characters, space, or shortened time zones.\n // Therefore, fix these problems and try again.\n // Examples:\n // 2015-04-15 20:33:59+02\n // 2015-04-15 20:33:59z\n // 2015-04-15t20:33:59+02:00\n pattern = new RegExp([\n '^([0-9]{4}-[0-9]{2}-[0-9]{2})',\n '[ t]',\n '([0-9]{2}:[0-9]{2}:[0-9]{2}(\\\\.[0-9]+)?)',\n '([\\\\+-][0-9]{2}(:[0-9]{2})?|z)'\n ].join(''))\n match = text.match(pattern)\n if (match) {\n // @todo: time zone information\n if (match[4] === 'z') {\n match[4] = 'Z'\n } else if (match[4].match(/^([+-][0-9]{2})$/)) {\n match[4] = match[4] + ':00'\n }\n\n if (!isNaN(parsed = Date.parse(match[1] + 'T' + match[2] + match[4]))) {\n return parsed / 1000 | 0\n }\n }\n\n date = now ? new Date(now * 1000) : new Date()\n days = {\n 'sun': 0,\n 'mon': 1,\n 'tue': 2,\n 'wed': 3,\n 'thu': 4,\n 'fri': 5,\n 'sat': 6\n }\n ranges = {\n 'yea': 'FullYear',\n 'mon': 'Month',\n 'day': 'Date',\n 'hou': 'Hours',\n 'min': 'Minutes',\n 'sec': 'Seconds'\n }\n\n function lastNext (type, range, modifier) {\n var diff\n var day = days[range]\n\n if (typeof day !== 'undefined') {\n diff = day - date.getDay()\n\n if (diff === 0) {\n diff = 7 * modifier\n } else if (diff > 0 && type === 'last') {\n diff -= 7\n } else if (diff < 0 && type === 'next') {\n diff += 7\n }\n\n date.setDate(date.getDate() + diff)\n }\n }\n\n function process (val) {\n // @todo: Reconcile this with regex using \\s, taking into account\n // browser issues with split and regexes\n var splt = val.split(' ')\n var type = splt[0]\n var range = splt[1].substring(0, 3)\n var typeIsNumber = /\\d+/.test(type)\n var ago = splt[2] === 'ago'\n var num = (type === 'last' ? -1 : 1) * (ago ? -1 : 1)\n\n if (typeIsNumber) {\n num *= parseInt(type, 10)\n }\n\n if (ranges.hasOwnProperty(range) && !splt[1].match(/^mon(day|\\.)?$/i)) {\n return date['set' + ranges[range]](date['get' + ranges[range]]() + num)\n }\n\n if (range === 'wee') {\n return date.setDate(date.getDate() + (num * 7))\n }\n\n if (type === 'next' || type === 'last') {\n lastNext(type, range, num)\n } else if (!typeIsNumber) {\n return false\n }\n\n return true\n }\n\n times = '(years?|months?|weeks?|days?|hours?|minutes?|min|seconds?|sec' +\n '|sunday|sun\\\\.?|monday|mon\\\\.?|tuesday|tue\\\\.?|wednesday|wed\\\\.?' +\n '|thursday|thu\\\\.?|friday|fri\\\\.?|saturday|sat\\\\.?)'\n regex = '([+-]?\\\\d+\\\\s' + times + '|' + '(last|next)\\\\s' + times + ')(\\\\sago)?'\n\n match = text.match(new RegExp(regex, 'gi'))\n if (!match) {\n return fail\n }\n\n for (i = 0, len = match.length; i < len; i++) {\n if (!process(match[i])) {\n return fail\n }\n }\n\n return (date.getTime() / 1000)\n}\n"]} \ No newline at end of file