HEX
Server: Apache
System: Linux webd004.cluster130.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User: frenchy (106757)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/frenchy/www/french-american.org/current/node_modules/locutus/php/datetime/strtotime.js.map
{"version":3,"sources":["../../../src/php/datetime/strtotime.js"],"names":["reSpace","reSpaceOpt","reMeridian","reHour24","reHour24lz","reHour12","reMinute","reMinutelz","reSecond","reSecondlz","reFrac","reDayfull","reDayabbr","reDaytext","reReltextnumber","reReltexttext","reReltextunit","reYear","reYear2","reYear4","reYear4withSign","reMonth","reMonthlz","reDay","reDaylz","reMonthFull","reMonthAbbr","reMonthroman","reMonthText","reTzCorrection","reDayOfYear","reWeekOfYear","processMeridian","hour","meridian","toLowerCase","processYear","yearStr","year","length","lookupMonth","monthStr","jan","january","i","feb","february","ii","mar","march","iii","apr","april","iv","may","v","jun","june","vi","jul","july","vii","aug","august","viii","sep","sept","september","ix","oct","october","x","nov","november","xi","dec","december","xii","lookupWeekday","dayStr","desiredSundayNumber","dayNumbers","mon","monday","tue","tuesday","wed","wednesday","thu","thursday","fri","friday","sat","saturday","sun","sunday","lookupRelative","relText","relativeNumbers","last","previous","this","first","next","second","third","fourth","fifth","sixth","seventh","eight","eighth","ninth","tenth","eleventh","twelfth","relativeBehavior","relTextLower","amount","behavior","processTzCorrection","tzOffset","oldValue","reTzCorrectionLoose","match","sign","hours","minutes","Math","floor","formats","yesterday","regex","name","callback","rd","resetTime","now","noon","time","midnightOrToday","tomorrow","timestamp","rs","y","m","d","dates","zone","firstOrLastDay","day","firstOrLastDayOfMonth","backOrFrontOf","RegExp","side","back","minute","weekdayOf","mssqltime","frac","substr","timeLong12","timeShort12","timeTiny12","soap","month","tzCorrection","ymd","wddx","exif","xmlRpc","xmlRpcNoColon","clf","iso8601long","dateTextual","pointedDate4","pointedDate2","timeLong24","dateNoColon","pgydotd","timeShort24","iso8601noColon","iso8601dateSlash","dateSlash","american","americanShort","gnuDateShortOrIso8601date2","iso8601date4","gnuNoColon","f","gnuDateShorter","pgTextReverse","dateFull","dateNoDay","dateNoDayRev","pgTextShort","dateNoYear","dateNoYearRev","isoWeekDay","week","dayOfWeek","Date","getDay","relativeText","relValue","relUnit","ri","rh","rm","ry","weekday","weekdayBehavior","relative","signs","minuses","replace","pow","dayText","relativeTextWeek","isNaN","monthFullOrMonthAbbr","ago","rf","gnuNoColon2","year4","whitespace","any","resultProto","NaN","h","s","z","times","zones","toDate","relativeTo","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","date","getTime","setFullYear","setHours","dow","diff","abs","result","setDate","setMonth","getTimezoneOffset","setUTCFullYear","setUTCHours","module","exports","strtotime","str","rules","Object","create","l","format","apply"],"mappings":"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","file":"strtotime.js","sourcesContent":["const reSpace = '[ \\\\t]+'\nconst reSpaceOpt = '[ \\\\t]*'\nconst reMeridian = '(?:([ap])\\\\.?m\\\\.?([\\\\t ]|$))'\nconst reHour24 = '(2[0-4]|[01]?[0-9])'\nconst reHour24lz = '([01][0-9]|2[0-4])'\nconst reHour12 = '(0?[1-9]|1[0-2])'\nconst reMinute = '([0-5]?[0-9])'\nconst reMinutelz = '([0-5][0-9])'\nconst reSecond = '(60|[0-5]?[0-9])'\nconst reSecondlz = '(60|[0-5][0-9])'\nconst reFrac = '(?:\\\\.([0-9]+))'\n\nconst reDayfull = 'sunday|monday|tuesday|wednesday|thursday|friday|saturday'\nconst reDayabbr = 'sun|mon|tue|wed|thu|fri|sat'\nconst reDaytext = reDayfull + '|' + reDayabbr + '|weekdays?'\n\nconst reReltextnumber = 'first|second|third|fourth|fifth|sixth|seventh|eighth?|ninth|tenth|eleventh|twelfth'\nconst reReltexttext = 'next|last|previous|this'\nconst reReltextunit = '(?:second|sec|minute|min|hour|day|fortnight|forthnight|month|year)s?|weeks|' + reDaytext\n\nconst reYear = '([0-9]{1,4})'\nconst reYear2 = '([0-9]{2})'\nconst reYear4 = '([0-9]{4})'\nconst reYear4withSign = '([+-]?[0-9]{4})'\nconst reMonth = '(1[0-2]|0?[0-9])'\nconst reMonthlz = '(0[0-9]|1[0-2])'\nconst reDay = '(?:(3[01]|[0-2]?[0-9])(?:st|nd|rd|th)?)'\nconst reDaylz = '(0[0-9]|[1-2][0-9]|3[01])'\n\nconst reMonthFull = 'january|february|march|april|may|june|july|august|september|october|november|december'\nconst reMonthAbbr = 'jan|feb|mar|apr|may|jun|jul|aug|sept?|oct|nov|dec'\nconst reMonthroman = 'i[vx]|vi{0,3}|xi{0,2}|i{1,3}'\nconst reMonthText = '(' + reMonthFull + '|' + reMonthAbbr + '|' + reMonthroman + ')'\n\nconst reTzCorrection = '((?:GMT)?([+-])' + reHour24 + ':?' + reMinute + '?)'\nconst reDayOfYear = '(00[1-9]|0[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-6])'\nconst reWeekOfYear = '(0[1-9]|[1-4][0-9]|5[0-3])'\n\nfunction processMeridian (hour, meridian) {\n  meridian = meridian && meridian.toLowerCase()\n\n  switch (meridian) {\n    case 'a':\n      hour += hour === 12 ? -12 : 0\n      break\n    case 'p':\n      hour += hour !== 12 ? 12 : 0\n      break\n  }\n\n  return hour\n}\n\nfunction processYear (yearStr) {\n  let year = +yearStr\n\n  if (yearStr.length < 4 && year < 100) {\n    year += year < 70 ? 2000 : 1900\n  }\n\n  return year\n}\n\nfunction lookupMonth (monthStr) {\n  return {\n    jan: 0,\n    january: 0,\n    i: 0,\n    feb: 1,\n    february: 1,\n    ii: 1,\n    mar: 2,\n    march: 2,\n    iii: 2,\n    apr: 3,\n    april: 3,\n    iv: 3,\n    may: 4,\n    v: 4,\n    jun: 5,\n    june: 5,\n    vi: 5,\n    jul: 6,\n    july: 6,\n    vii: 6,\n    aug: 7,\n    august: 7,\n    viii: 7,\n    sep: 8,\n    sept: 8,\n    september: 8,\n    ix: 8,\n    oct: 9,\n    october: 9,\n    x: 9,\n    nov: 10,\n    november: 10,\n    xi: 10,\n    dec: 11,\n    december: 11,\n    xii: 11\n  }[monthStr.toLowerCase()]\n}\n\nfunction lookupWeekday (dayStr, desiredSundayNumber = 0) {\n  const dayNumbers = {\n    mon: 1,\n    monday: 1,\n    tue: 2,\n    tuesday: 2,\n    wed: 3,\n    wednesday: 3,\n    thu: 4,\n    thursday: 4,\n    fri: 5,\n    friday: 5,\n    sat: 6,\n    saturday: 6,\n    sun: 0,\n    sunday: 0\n  }\n\n  return dayNumbers[dayStr.toLowerCase()] || desiredSundayNumber\n}\n\nfunction lookupRelative (relText) {\n  const relativeNumbers = {\n    last: -1,\n    previous: -1,\n    this: 0,\n    first: 1,\n    next: 1,\n    second: 2,\n    third: 3,\n    fourth: 4,\n    fifth: 5,\n    sixth: 6,\n    seventh: 7,\n    eight: 8,\n    eighth: 8,\n    ninth: 9,\n    tenth: 10,\n    eleventh: 11,\n    twelfth: 12\n  }\n\n  const relativeBehavior = {\n    this: 1\n  }\n\n  const relTextLower = relText.toLowerCase()\n\n  return {\n    amount: relativeNumbers[relTextLower],\n    behavior: relativeBehavior[relTextLower] || 0\n  }\n}\n\nfunction processTzCorrection (tzOffset, oldValue) {\n  const reTzCorrectionLoose = /(?:GMT)?([+-])(\\d+)(:?)(\\d{0,2})/i\n  tzOffset = tzOffset && tzOffset.match(reTzCorrectionLoose)\n\n  if (!tzOffset) {\n    return oldValue\n  }\n\n  let sign = tzOffset[1] === '-' ? 1 : -1\n  let hours = +tzOffset[2]\n  let minutes = +tzOffset[4]\n\n  if (!tzOffset[4] && !tzOffset[3]) {\n    minutes = Math.floor(hours % 100)\n    hours = Math.floor(hours / 100)\n  }\n\n  return sign * (hours * 60 + minutes)\n}\n\nconst formats = {\n  yesterday: {\n    regex: /^yesterday/i,\n    name: 'yesterday',\n    callback () {\n      this.rd -= 1\n      return this.resetTime()\n    }\n  },\n\n  now: {\n    regex: /^now/i,\n    name: 'now'\n    // do nothing\n  },\n\n  noon: {\n    regex: /^noon/i,\n    name: 'noon',\n    callback () {\n      return this.resetTime() && this.time(12, 0, 0, 0)\n    }\n  },\n\n  midnightOrToday: {\n    regex: /^(midnight|today)/i,\n    name: 'midnight | today',\n    callback () {\n      return this.resetTime()\n    }\n  },\n\n  tomorrow: {\n    regex: /^tomorrow/i,\n    name: 'tomorrow',\n    callback () {\n      this.rd += 1\n      return this.resetTime()\n    }\n  },\n\n  timestamp: {\n    regex: /^@(-?\\d+)/i,\n    name: 'timestamp',\n    callback (match, timestamp) {\n      this.rs += +timestamp\n      this.y = 1970\n      this.m = 0\n      this.d = 1\n      this.dates = 0\n\n      return this.resetTime() && this.zone(0)\n    }\n  },\n\n  firstOrLastDay: {\n    regex: /^(first|last) day of/i,\n    name: 'firstdayof | lastdayof',\n    callback (match, day) {\n      if (day.toLowerCase() === 'first') {\n        this.firstOrLastDayOfMonth = 1\n      } else {\n        this.firstOrLastDayOfMonth = -1\n      }\n    }\n  },\n\n  backOrFrontOf: {\n    regex: RegExp('^(back|front) of ' + reHour24 + reSpaceOpt + reMeridian + '?', 'i'),\n    name: 'backof | frontof',\n    callback (match, side, hours, meridian) {\n      let back = side.toLowerCase() === 'back'\n      let hour = +hours\n      let minute = 15\n\n      if (!back) {\n        hour -= 1\n        minute = 45\n      }\n\n      hour = processMeridian(hour, meridian)\n\n      return this.resetTime() && this.time(hour, minute, 0, 0)\n    }\n  },\n\n  weekdayOf: {\n    regex: RegExp('^(' + reReltextnumber + '|' + reReltexttext + ')' + reSpace + '(' + reDayfull + '|' + reDayabbr + ')' + reSpace + 'of', 'i'),\n    name: 'weekdayof'\n    // todo\n  },\n\n  mssqltime: {\n    regex: RegExp('^' + reHour12 + ':' + reMinutelz + ':' + reSecondlz + '[:.]([0-9]+)' + reMeridian, 'i'),\n    name: 'mssqltime',\n    callback (match, hour, minute, second, frac, meridian) {\n      return this.time(processMeridian(+hour, meridian), +minute, +second, +frac.substr(0, 3))\n    }\n  },\n\n  timeLong12: {\n    regex: RegExp('^' + reHour12 + '[:.]' + reMinute + '[:.]' + reSecondlz + reSpaceOpt + reMeridian, 'i'),\n    name: 'timelong12',\n    callback (match, hour, minute, second, meridian) {\n      return this.time(processMeridian(+hour, meridian), +minute, +second, 0)\n    }\n  },\n\n  timeShort12: {\n    regex: RegExp('^' + reHour12 + '[:.]' + reMinutelz + reSpaceOpt + reMeridian, 'i'),\n    name: 'timeshort12',\n    callback (match, hour, minute, meridian) {\n      return this.time(processMeridian(+hour, meridian), +minute, 0, 0)\n    }\n  },\n\n  timeTiny12: {\n    regex: RegExp('^' + reHour12 + reSpaceOpt + reMeridian, 'i'),\n    name: 'timetiny12',\n    callback (match, hour, meridian) {\n      return this.time(processMeridian(+hour, meridian), 0, 0, 0)\n    }\n  },\n\n  soap: {\n    regex: RegExp('^' + reYear4 + '-' + reMonthlz + '-' + reDaylz + 'T' + reHour24lz + ':' + reMinutelz + ':' + reSecondlz + reFrac + reTzCorrection + '?', 'i'),\n    name: 'soap',\n    callback (match, year, month, day, hour, minute, second, frac, tzCorrection) {\n      return this.ymd(+year, month - 1, +day) &&\n              this.time(+hour, +minute, +second, +frac.substr(0, 3)) &&\n              this.zone(processTzCorrection(tzCorrection))\n    }\n  },\n\n  wddx: {\n    regex: RegExp('^' + reYear4 + '-' + reMonth + '-' + reDay + 'T' + reHour24 + ':' + reMinute + ':' + reSecond),\n    name: 'wddx',\n    callback (match, year, month, day, hour, minute, second) {\n      return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n    }\n  },\n\n  exif: {\n    regex: RegExp('^' + reYear4 + ':' + reMonthlz + ':' + reDaylz + ' ' + reHour24lz + ':' + reMinutelz + ':' + reSecondlz, 'i'),\n    name: 'exif',\n    callback (match, year, month, day, hour, minute, second) {\n      return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n    }\n  },\n\n  xmlRpc: {\n    regex: RegExp('^' + reYear4 + reMonthlz + reDaylz + 'T' + reHour24 + ':' + reMinutelz + ':' + reSecondlz),\n    name: 'xmlrpc',\n    callback (match, year, month, day, hour, minute, second) {\n      return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n    }\n  },\n\n  xmlRpcNoColon: {\n    regex: RegExp('^' + reYear4 + reMonthlz + reDaylz + '[Tt]' + reHour24 + reMinutelz + reSecondlz),\n    name: 'xmlrpcnocolon',\n    callback (match, year, month, day, hour, minute, second) {\n      return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n    }\n  },\n\n  clf: {\n    regex: RegExp('^' + reDay + '/(' + reMonthAbbr + ')/' + reYear4 + ':' + reHour24lz + ':' + reMinutelz + ':' + reSecondlz + reSpace + reTzCorrection, 'i'),\n    name: 'clf',\n    callback (match, day, month, year, hour, minute, second, tzCorrection) {\n      return this.ymd(+year, lookupMonth(month), +day) &&\n              this.time(+hour, +minute, +second, 0) &&\n              this.zone(processTzCorrection(tzCorrection))\n    }\n  },\n\n  iso8601long: {\n    regex: RegExp('^t?' + reHour24 + '[:.]' + reMinute + '[:.]' + reSecond + reFrac, 'i'),\n    name: 'iso8601long',\n    callback (match, hour, minute, second, frac) {\n      return this.time(+hour, +minute, +second, +frac.substr(0, 3))\n    }\n  },\n\n  dateTextual: {\n    regex: RegExp('^' + reMonthText + '[ .\\\\t-]*' + reDay + '[,.stndrh\\\\t ]+' + reYear, 'i'),\n    name: 'datetextual',\n    callback (match, month, day, year) {\n      return this.ymd(processYear(year), lookupMonth(month), +day)\n    }\n  },\n\n  pointedDate4: {\n    regex: RegExp('^' + reDay + '[.\\\\t-]' + reMonth + '[.-]' + reYear4),\n    name: 'pointeddate4',\n    callback (match, day, month, year) {\n      return this.ymd(+year, month - 1, +day)\n    }\n  },\n\n  pointedDate2: {\n    regex: RegExp('^' + reDay + '[.\\\\t]' + reMonth + '\\\\.' + reYear2),\n    name: 'pointeddate2',\n    callback (match, day, month, year) {\n      return this.ymd(processYear(year), month - 1, +day)\n    }\n  },\n\n  timeLong24: {\n    regex: RegExp('^t?' + reHour24 + '[:.]' + reMinute + '[:.]' + reSecond),\n    name: 'timelong24',\n    callback (match, hour, minute, second) {\n      return this.time(+hour, +minute, +second, 0)\n    }\n  },\n\n  dateNoColon: {\n    regex: RegExp('^' + reYear4 + reMonthlz + reDaylz),\n    name: 'datenocolon',\n    callback (match, year, month, day) {\n      return this.ymd(+year, month - 1, +day)\n    }\n  },\n\n  pgydotd: {\n    regex: RegExp('^' + reYear4 + '\\\\.?' + reDayOfYear),\n    name: 'pgydotd',\n    callback (match, year, day) {\n      return this.ymd(+year, 0, +day)\n    }\n  },\n\n  timeShort24: {\n    regex: RegExp('^t?' + reHour24 + '[:.]' + reMinute, 'i'),\n    name: 'timeshort24',\n    callback (match, hour, minute) {\n      return this.time(+hour, +minute, 0, 0)\n    }\n  },\n\n  iso8601noColon: {\n    regex: RegExp('^t?' + reHour24lz + reMinutelz + reSecondlz, 'i'),\n    name: 'iso8601nocolon',\n    callback (match, hour, minute, second) {\n      return this.time(+hour, +minute, +second, 0)\n    }\n  },\n\n  iso8601dateSlash: {\n    // eventhough the trailing slash is optional in PHP\n    // here it's mandatory and inputs without the slash\n    // are handled by dateslash\n    regex: RegExp('^' + reYear4 + '/' + reMonthlz + '/' + reDaylz + '/'),\n    name: 'iso8601dateslash',\n    callback (match, year, month, day) {\n      return this.ymd(+year, month - 1, +day)\n    }\n  },\n\n  dateSlash: {\n    regex: RegExp('^' + reYear4 + '/' + reMonth + '/' + reDay),\n    name: 'dateslash',\n    callback (match, year, month, day) {\n      return this.ymd(+year, month - 1, +day)\n    }\n  },\n\n  american: {\n    regex: RegExp('^' + reMonth + '/' + reDay + '/' + reYear),\n    name: 'american',\n    callback (match, month, day, year) {\n      return this.ymd(processYear(year), month - 1, +day)\n    }\n  },\n\n  americanShort: {\n    regex: RegExp('^' + reMonth + '/' + reDay),\n    name: 'americanshort',\n    callback (match, month, day) {\n      return this.ymd(this.y, month - 1, +day)\n    }\n  },\n\n  gnuDateShortOrIso8601date2: {\n    // iso8601date2 is complete subset of gnudateshort\n    regex: RegExp('^' + reYear + '-' + reMonth + '-' + reDay),\n    name: 'gnudateshort | iso8601date2',\n    callback (match, year, month, day) {\n      return this.ymd(processYear(year), month - 1, +day)\n    }\n  },\n\n  iso8601date4: {\n    regex: RegExp('^' + reYear4withSign + '-' + reMonthlz + '-' + reDaylz),\n    name: 'iso8601date4',\n    callback (match, year, month, day) {\n      return this.ymd(+year, month - 1, +day)\n    }\n  },\n\n  gnuNoColon: {\n    regex: RegExp('^t' + reHour24lz + reMinutelz, 'i'),\n    name: 'gnunocolon',\n    callback (match, hour, minute) {\n      return this.time(+hour, +minute, 0, this.f)\n    }\n  },\n\n  gnuDateShorter: {\n    regex: RegExp('^' + reYear4 + '-' + reMonth),\n    name: 'gnudateshorter',\n    callback (match, year, month) {\n      return this.ymd(+year, month - 1, 1)\n    }\n  },\n\n  pgTextReverse: {\n    // note: allowed years are from 32-9999\n    // years below 32 should be treated as days in datefull\n    regex: RegExp('^' + '(\\\\d{3,4}|[4-9]\\\\d|3[2-9])-(' + reMonthAbbr + ')-' + reDaylz, 'i'),\n    name: 'pgtextreverse',\n    callback (match, year, month, day) {\n      return this.ymd(processYear(year), lookupMonth(month), +day)\n    }\n  },\n\n  dateFull: {\n    regex: RegExp('^' + reDay + '[ \\\\t.-]*' + reMonthText + '[ \\\\t.-]*' + reYear, 'i'),\n    name: 'datefull',\n    callback (match, day, month, year) {\n      return this.ymd(processYear(year), lookupMonth(month), +day)\n    }\n  },\n\n  dateNoDay: {\n    regex: RegExp('^' + reMonthText + '[ .\\\\t-]*' + reYear4, 'i'),\n    name: 'datenoday',\n    callback (match, month, year) {\n      return this.ymd(+year, lookupMonth(month), 1)\n    }\n  },\n\n  dateNoDayRev: {\n    regex: RegExp('^' + reYear4 + '[ .\\\\t-]*' + reMonthText, 'i'),\n    name: 'datenodayrev',\n    callback (match, year, month) {\n      return this.ymd(+year, lookupMonth(month), 1)\n    }\n  },\n\n  pgTextShort: {\n    regex: RegExp('^(' + reMonthAbbr + ')-' + reDaylz + '-' + reYear, 'i'),\n    name: 'pgtextshort',\n    callback (match, month, day, year) {\n      return this.ymd(processYear(year), lookupMonth(month), +day)\n    }\n  },\n\n  dateNoYear: {\n    regex: RegExp('^' + reMonthText + '[ .\\\\t-]*' + reDay + '[,.stndrh\\\\t ]*', 'i'),\n    name: 'datenoyear',\n    callback (match, month, day) {\n      return this.ymd(this.y, lookupMonth(month), +day)\n    }\n  },\n\n  dateNoYearRev: {\n    regex: RegExp('^' + reDay + '[ .\\\\t-]*' + reMonthText, 'i'),\n    name: 'datenoyearrev',\n    callback (match, day, month) {\n      return this.ymd(this.y, lookupMonth(month), +day)\n    }\n  },\n\n  isoWeekDay: {\n    regex: RegExp('^' + reYear4 + '-?W' + reWeekOfYear + '(?:-?([0-7]))?'),\n    name: 'isoweekday | isoweek',\n    callback (match, year, week, day) {\n      day = day ? +day : 1\n\n      if (!this.ymd(+year, 0, 1)) {\n        return false\n      }\n\n      // get day of week for Jan 1st\n      let dayOfWeek = new Date(this.y, this.m, this.d).getDay()\n\n      // and use the day to figure out the offset for day 1 of week 1\n      dayOfWeek = 0 - (dayOfWeek > 4 ? dayOfWeek - 7 : dayOfWeek)\n\n      this.rd += dayOfWeek + ((week - 1) * 7) + day\n    }\n  },\n\n  relativeText: {\n    regex: RegExp('^(' + reReltextnumber + '|' + reReltexttext + ')' + reSpace + '(' + reReltextunit + ')', 'i'),\n    name: 'relativetext',\n    callback (match, relValue, relUnit) {\n      // todo: implement handling of 'this time-unit'\n      // eslint-disable-next-line no-unused-vars\n      const { amount, behavior } = lookupRelative(relValue)\n\n      switch (relUnit.toLowerCase()) {\n        case 'sec':\n        case 'secs':\n        case 'second':\n        case 'seconds':\n          this.rs += amount\n          break\n        case 'min':\n        case 'mins':\n        case 'minute':\n        case 'minutes':\n          this.ri += amount\n          break\n        case 'hour':\n        case 'hours':\n          this.rh += amount\n          break\n        case 'day':\n        case 'days':\n          this.rd += amount\n          break\n        case 'fortnight':\n        case 'fortnights':\n        case 'forthnight':\n        case 'forthnights':\n          this.rd += amount * 14\n          break\n        case 'week':\n        case 'weeks':\n          this.rd += amount * 7\n          break\n        case 'month':\n        case 'months':\n          this.rm += amount\n          break\n        case 'year':\n        case 'years':\n          this.ry += amount\n          break\n        case 'mon': case 'monday':\n        case 'tue': case 'tuesday':\n        case 'wed': case 'wednesday':\n        case 'thu': case 'thursday':\n        case 'fri': case 'friday':\n        case 'sat': case 'saturday':\n        case 'sun': case 'sunday':\n          this.resetTime()\n          this.weekday = lookupWeekday(relUnit, 7)\n          this.weekdayBehavior = 1\n          this.rd += (amount > 0 ? amount - 1 : amount) * 7\n          break\n        case 'weekday':\n        case 'weekdays':\n          // todo\n          break\n      }\n    }\n  },\n\n  relative: {\n    regex: RegExp('^([+-]*)[ \\\\t]*(\\\\d+)' + reSpaceOpt + '(' + reReltextunit + '|week)', 'i'),\n    name: 'relative',\n    callback (match, signs, relValue, relUnit) {\n      const minuses = signs.replace(/[^-]/g, '').length\n\n      let amount = +relValue * Math.pow(-1, minuses)\n\n      switch (relUnit.toLowerCase()) {\n        case 'sec':\n        case 'secs':\n        case 'second':\n        case 'seconds':\n          this.rs += amount\n          break\n        case 'min':\n        case 'mins':\n        case 'minute':\n        case 'minutes':\n          this.ri += amount\n          break\n        case 'hour':\n        case 'hours':\n          this.rh += amount\n          break\n        case 'day':\n        case 'days':\n          this.rd += amount\n          break\n        case 'fortnight':\n        case 'fortnights':\n        case 'forthnight':\n        case 'forthnights':\n          this.rd += amount * 14\n          break\n        case 'week':\n        case 'weeks':\n          this.rd += amount * 7\n          break\n        case 'month':\n        case 'months':\n          this.rm += amount\n          break\n        case 'year':\n        case 'years':\n          this.ry += amount\n          break\n        case 'mon': case 'monday':\n        case 'tue': case 'tuesday':\n        case 'wed': case 'wednesday':\n        case 'thu': case 'thursday':\n        case 'fri': case 'friday':\n        case 'sat': case 'saturday':\n        case 'sun': case 'sunday':\n          this.resetTime()\n          this.weekday = lookupWeekday(relUnit, 7)\n          this.weekdayBehavior = 1\n          this.rd += (amount > 0 ? amount - 1 : amount) * 7\n          break\n        case 'weekday':\n        case 'weekdays':\n          // todo\n          break\n      }\n    }\n  },\n\n  dayText: {\n    regex: RegExp('^(' + reDaytext + ')', 'i'),\n    name: 'daytext',\n    callback (match, dayText) {\n      this.resetTime()\n      this.weekday = lookupWeekday(dayText, 0)\n\n      if (this.weekdayBehavior !== 2) {\n        this.weekdayBehavior = 1\n      }\n    }\n  },\n\n  relativeTextWeek: {\n    regex: RegExp('^(' + reReltexttext + ')' + reSpace + 'week', 'i'),\n    name: 'relativetextweek',\n    callback (match, relText) {\n      this.weekdayBehavior = 2\n\n      switch (relText.toLowerCase()) {\n        case 'this':\n          this.rd += 0\n          break\n        case 'next':\n          this.rd += 7\n          break\n        case 'last':\n        case 'previous':\n          this.rd -= 7\n          break\n      }\n\n      if (isNaN(this.weekday)) {\n        this.weekday = 1\n      }\n    }\n  },\n\n  monthFullOrMonthAbbr: {\n    regex: RegExp('^(' + reMonthFull + '|' + reMonthAbbr + ')', 'i'),\n    name: 'monthfull | monthabbr',\n    callback (match, month) {\n      return this.ymd(this.y, lookupMonth(month), this.d)\n    }\n  },\n\n  tzCorrection: {\n    regex: RegExp('^' + reTzCorrection, 'i'),\n    name: 'tzcorrection',\n    callback (tzCorrection) {\n      return this.zone(processTzCorrection(tzCorrection))\n    }\n  },\n\n  ago: {\n    regex: /^ago/i,\n    name: 'ago',\n    callback () {\n      this.ry = -this.ry\n      this.rm = -this.rm\n      this.rd = -this.rd\n      this.rh = -this.rh\n      this.ri = -this.ri\n      this.rs = -this.rs\n      this.rf = -this.rf\n    }\n  },\n\n  gnuNoColon2: {\n    // second instance of gnunocolon, without leading 't'\n    // it's down here, because it is very generic (4 digits in a row)\n    // thus conflicts with many rules above\n    // only year4 should come afterwards\n    regex: RegExp('^' + reHour24lz + reMinutelz, 'i'),\n    name: 'gnunocolon',\n    callback (match, hour, minute) {\n      return this.time(+hour, +minute, 0, this.f)\n    }\n  },\n\n  year4: {\n    regex: RegExp('^' + reYear4),\n    name: 'year4',\n    callback (match, year) {\n      this.y = +year\n      return true\n    }\n  },\n\n  whitespace: {\n    regex: /^[ .,\\t]+/,\n    name: 'whitespace'\n    // do nothing\n  },\n\n  any: {\n    regex: /^[\\s\\S]+/,\n    name: 'any',\n    callback () {\n      return false\n    }\n  }\n}\n\nlet resultProto = {\n  // date\n  y: NaN,\n  m: NaN,\n  d: NaN,\n  // time\n  h: NaN,\n  i: NaN,\n  s: NaN,\n  f: NaN,\n\n  // relative shifts\n  ry: 0,\n  rm: 0,\n  rd: 0,\n  rh: 0,\n  ri: 0,\n  rs: 0,\n  rf: 0,\n\n  // weekday related shifts\n  weekday: NaN,\n  weekdayBehavior: 0,\n\n  // first or last day of month\n  // 0 none, 1 first, -1 last\n  firstOrLastDayOfMonth: 0,\n\n  // timezone correction in minutes\n  z: NaN,\n\n  // counters\n  dates: 0,\n  times: 0,\n  zones: 0,\n\n  // helper functions\n  ymd (y, m, d) {\n    if (this.dates > 0) {\n      return false\n    }\n\n    this.dates++\n    this.y = y\n    this.m = m\n    this.d = d\n    return true\n  },\n\n  time (h, i, s, f) {\n    if (this.times > 0) {\n      return false\n    }\n\n    this.times++\n    this.h = h\n    this.i = i\n    this.s = s\n    this.f = f\n\n    return true\n  },\n\n  resetTime () {\n    this.h = 0\n    this.i = 0\n    this.s = 0\n    this.f = 0\n    this.times = 0\n\n    return true\n  },\n\n  zone (minutes) {\n    if (this.zones <= 1) {\n      this.zones++\n      this.z = minutes\n      return true\n    }\n\n    return false\n  },\n\n  toDate (relativeTo) {\n    if (this.dates && !this.times) {\n      this.h = this.i = this.s = this.f = 0\n    }\n\n    // fill holes\n    if (isNaN(this.y)) {\n      this.y = relativeTo.getFullYear()\n    }\n\n    if (isNaN(this.m)) {\n      this.m = relativeTo.getMonth()\n    }\n\n    if (isNaN(this.d)) {\n      this.d = relativeTo.getDate()\n    }\n\n    if (isNaN(this.h)) {\n      this.h = relativeTo.getHours()\n    }\n\n    if (isNaN(this.i)) {\n      this.i = relativeTo.getMinutes()\n    }\n\n    if (isNaN(this.s)) {\n      this.s = relativeTo.getSeconds()\n    }\n\n    if (isNaN(this.f)) {\n      this.f = relativeTo.getMilliseconds()\n    }\n\n    // adjust special early\n    switch (this.firstOrLastDayOfMonth) {\n      case 1:\n        this.d = 1\n        break\n      case -1:\n        this.d = 0\n        this.m += 1\n        break\n    }\n\n    if (!isNaN(this.weekday)) {\n      var date = new Date(relativeTo.getTime())\n      date.setFullYear(this.y, this.m, this.d)\n      date.setHours(this.h, this.i, this.s, this.f)\n\n      var dow = date.getDay()\n\n      if (this.weekdayBehavior === 2) {\n        // To make \"this week\" work, where the current day of week is a \"sunday\"\n        if (dow === 0 && this.weekday !== 0) {\n          this.weekday = -6\n        }\n\n        // To make \"sunday this week\" work, where the current day of week is not a \"sunday\"\n        if (this.weekday === 0 && dow !== 0) {\n          this.weekday = 7\n        }\n\n        this.d -= dow\n        this.d += this.weekday\n      } else {\n        var diff = this.weekday - dow\n\n        // some PHP magic\n        if ((this.rd < 0 && diff < 0) || (this.rd >= 0 && diff <= -this.weekdayBehavior)) {\n          diff += 7\n        }\n\n        if (this.weekday >= 0) {\n          this.d += diff\n        } else {\n          this.d -= (7 - (Math.abs(this.weekday) - dow))\n        }\n\n        this.weekday = NaN\n      }\n    }\n\n    // adjust relative\n    this.y += this.ry\n    this.m += this.rm\n    this.d += this.rd\n\n    this.h += this.rh\n    this.i += this.ri\n    this.s += this.rs\n    this.f += this.rf\n\n    this.ry = this.rm = this.rd = 0\n    this.rh = this.ri = this.rs = this.rf = 0\n\n    let result = new Date(relativeTo.getTime())\n    // since Date constructor treats years <= 99 as 1900+\n    // it can't be used, thus this weird way\n    result.setFullYear(this.y, this.m, this.d)\n    result.setHours(this.h, this.i, this.s, this.f)\n\n    // note: this is done twice in PHP\n    // early when processing special relatives\n    // and late\n    // todo: check if the logic can be reduced\n    // to just one time action\n    switch (this.firstOrLastDayOfMonth) {\n      case 1:\n        result.setDate(1)\n        break\n      case -1:\n        result.setMonth(result.getMonth() + 1, 0)\n        break\n    }\n\n    // adjust timezone\n    if (!isNaN(this.z) && result.getTimezoneOffset() !== this.z) {\n      result.setUTCFullYear(\n        result.getFullYear(),\n        result.getMonth(),\n        result.getDate())\n\n      result.setUTCHours(\n        result.getHours(),\n        result.getMinutes() + this.z,\n        result.getSeconds(),\n        result.getMilliseconds())\n    }\n\n    return result\n  }\n}\n\nmodule.exports = function strtotime (str, 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  // reimplemented by: Rafał Kukawski\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+00')\n  //        returns 4: 1241425800\n  //        example 5: strtotime('2009-05-04 08:30:00+02:00')\n  //        returns 5: 1241418600\n  if (now == null) {\n    now = Math.floor(Date.now() / 1000)\n  }\n\n  // the rule order is very fragile\n  // as many formats are similar to others\n  // so small change can cause\n  // input misinterpretation\n  const rules = [\n    formats.yesterday,\n    formats.now,\n    formats.noon,\n    formats.midnightOrToday,\n    formats.tomorrow,\n    formats.timestamp,\n    formats.firstOrLastDay,\n    formats.backOrFrontOf,\n    // formats.weekdayOf, // not yet implemented\n    formats.mssqltime,\n    formats.timeLong12,\n    formats.timeShort12,\n    formats.timeTiny12,\n    formats.soap,\n    formats.wddx,\n    formats.exif,\n    formats.xmlRpc,\n    formats.xmlRpcNoColon,\n    formats.clf,\n    formats.iso8601long,\n    formats.dateTextual,\n    formats.pointedDate4,\n    formats.pointedDate2,\n    formats.timeLong24,\n    formats.dateNoColon,\n    formats.pgydotd,\n    formats.timeShort24,\n    formats.iso8601noColon,\n    // iso8601dateSlash needs to come before dateSlash\n    formats.iso8601dateSlash,\n    formats.dateSlash,\n    formats.american,\n    formats.americanShort,\n    formats.gnuDateShortOrIso8601date2,\n    formats.iso8601date4,\n    formats.gnuNoColon,\n    formats.gnuDateShorter,\n    formats.pgTextReverse,\n    formats.dateFull,\n    formats.dateNoDay,\n    formats.dateNoDayRev,\n    formats.pgTextShort,\n    formats.dateNoYear,\n    formats.dateNoYearRev,\n    formats.isoWeekDay,\n    formats.relativeText,\n    formats.relative,\n    formats.dayText,\n    formats.relativeTextWeek,\n    formats.monthFullOrMonthAbbr,\n    formats.tzCorrection,\n    formats.ago,\n    formats.gnuNoColon2,\n    formats.year4,\n    // note: the two rules below\n    // should always come last\n    formats.whitespace,\n    formats.any\n  ]\n\n  let result = Object.create(resultProto)\n\n  while (str.length) {\n    for (let i = 0, l = rules.length; i < l; i++) {\n      const format = rules[i]\n\n      const match = str.match(format.regex)\n\n      if (match) {\n        // care only about false results. Ignore other values\n        if (format.callback && format.callback.apply(result, match) === false) {\n          return false\n        }\n\n        str = str.substr(match[0].length)\n        break\n      }\n    }\n  }\n\n  return Math.floor(result.toDate(new Date(now * 1000)) / 1000)\n}\n"]}