locutus 2.0.12 → 2.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/_util/cli.js.map +1 -1
  2. package/_util/util.js +11 -16
  3. package/_util/util.js.map +1 -1
  4. package/c/index.js +2 -2
  5. package/c/index.js.map +1 -1
  6. package/c/math/index.js +2 -2
  7. package/c/math/index.js.map +1 -1
  8. package/c/stdio/index.js +1 -1
  9. package/c/stdio/index.js.map +1 -1
  10. package/c/stdio/sprintf.js +8 -1
  11. package/c/stdio/sprintf.js.map +1 -1
  12. package/golang/index.js +1 -1
  13. package/golang/index.js.map +1 -1
  14. package/golang/strings/Count.js +1 -1
  15. package/golang/strings/Count.js.map +1 -1
  16. package/golang/strings/index.js +4 -4
  17. package/golang/strings/index.js.map +1 -1
  18. package/index.js +5 -5
  19. package/index.js.map +1 -1
  20. package/package.json +39 -40
  21. package/php/_helpers/_bc.js +104 -48
  22. package/php/_helpers/_bc.js.map +1 -1
  23. package/php/_helpers/_phpCastString.js.map +1 -1
  24. package/php/_helpers/_php_cast_float.js.map +1 -1
  25. package/php/_helpers/_php_cast_int.js.map +1 -1
  26. package/php/_helpers/index.js +4 -4
  27. package/php/_helpers/index.js.map +1 -1
  28. package/php/array/array_change_key_case.js +2 -2
  29. package/php/array/array_change_key_case.js.map +1 -1
  30. package/php/array/array_chunk.js +1 -1
  31. package/php/array/array_chunk.js.map +1 -1
  32. package/php/array/array_column.js.map +1 -1
  33. package/php/array/array_combine.js.map +1 -1
  34. package/php/array/array_count_values.js.map +1 -1
  35. package/php/array/array_diff.js.map +1 -1
  36. package/php/array/array_diff_assoc.js.map +1 -1
  37. package/php/array/array_diff_key.js.map +1 -1
  38. package/php/array/array_diff_uassoc.js.map +1 -1
  39. package/php/array/array_diff_ukey.js.map +1 -1
  40. package/php/array/array_fill.js +1 -1
  41. package/php/array/array_fill.js.map +1 -1
  42. package/php/array/array_fill_keys.js.map +1 -1
  43. package/php/array/array_filter.js +1 -1
  44. package/php/array/array_filter.js.map +1 -1
  45. package/php/array/array_flip.js +1 -1
  46. package/php/array/array_flip.js.map +1 -1
  47. package/php/array/array_intersect.js.map +1 -1
  48. package/php/array/array_intersect_assoc.js.map +1 -1
  49. package/php/array/array_intersect_key.js.map +1 -1
  50. package/php/array/array_intersect_uassoc.js.map +1 -1
  51. package/php/array/array_intersect_ukey.js.map +1 -1
  52. package/php/array/array_keys.js.map +1 -1
  53. package/php/array/array_map.js.map +1 -1
  54. package/php/array/array_merge.js +1 -1
  55. package/php/array/array_merge.js.map +1 -1
  56. package/php/array/array_merge_recursive.js.map +1 -1
  57. package/php/array/array_multisort.js +16 -16
  58. package/php/array/array_multisort.js.map +1 -1
  59. package/php/array/array_pad.js +1 -1
  60. package/php/array/array_pad.js.map +1 -1
  61. package/php/array/array_pop.js.map +1 -1
  62. package/php/array/array_product.js.map +1 -1
  63. package/php/array/array_push.js.map +1 -1
  64. package/php/array/array_rand.js.map +1 -1
  65. package/php/array/array_reduce.js.map +1 -1
  66. package/php/array/array_replace.js.map +1 -1
  67. package/php/array/array_replace_recursive.js +1 -1
  68. package/php/array/array_replace_recursive.js.map +1 -1
  69. package/php/array/array_reverse.js +1 -1
  70. package/php/array/array_reverse.js.map +1 -1
  71. package/php/array/array_search.js.map +1 -1
  72. package/php/array/array_shift.js +0 -19
  73. package/php/array/array_shift.js.map +1 -1
  74. package/php/array/array_slice.js.map +1 -1
  75. package/php/array/array_splice.js.map +1 -1
  76. package/php/array/array_sum.js +1 -1
  77. package/php/array/array_sum.js.map +1 -1
  78. package/php/array/array_udiff.js.map +1 -1
  79. package/php/array/array_udiff_assoc.js.map +1 -1
  80. package/php/array/array_udiff_uassoc.js.map +1 -1
  81. package/php/array/array_uintersect.js.map +1 -1
  82. package/php/array/array_uintersect_uassoc.js.map +1 -1
  83. package/php/array/array_unique.js.map +1 -1
  84. package/php/array/array_unshift.js.map +1 -1
  85. package/php/array/array_values.js.map +1 -1
  86. package/php/array/array_walk.js.map +1 -1
  87. package/php/array/array_walk_recursive.js.map +1 -1
  88. package/php/array/arsort.js +3 -3
  89. package/php/array/arsort.js.map +1 -1
  90. package/php/array/asort.js +3 -3
  91. package/php/array/asort.js.map +1 -1
  92. package/php/array/count.js +1 -1
  93. package/php/array/count.js.map +1 -1
  94. package/php/array/current.js.map +1 -1
  95. package/php/array/each.js.map +1 -1
  96. package/php/array/end.js +1 -1
  97. package/php/array/end.js.map +1 -1
  98. package/php/array/in_array.js.map +1 -1
  99. package/php/array/index.js +73 -72
  100. package/php/array/index.js.map +1 -1
  101. package/php/array/key.js.map +1 -1
  102. package/php/array/krsort.js +3 -3
  103. package/php/array/krsort.js.map +1 -1
  104. package/php/array/ksort.js +3 -3
  105. package/php/array/ksort.js.map +1 -1
  106. package/php/array/natcasesort.js +2 -2
  107. package/php/array/natcasesort.js.map +1 -1
  108. package/php/array/natsort.js +2 -2
  109. package/php/array/natsort.js.map +1 -1
  110. package/php/array/next.js.map +1 -1
  111. package/php/array/pos.js.map +1 -1
  112. package/php/array/prev.js.map +1 -1
  113. package/php/array/range.js +3 -3
  114. package/php/array/range.js.map +1 -1
  115. package/php/array/reset.js.map +1 -1
  116. package/php/array/rsort.js +3 -3
  117. package/php/array/rsort.js.map +1 -1
  118. package/php/array/shuffle.js.map +1 -1
  119. package/php/array/sizeof.js.map +1 -1
  120. package/php/array/sort.js +3 -3
  121. package/php/array/sort.js.map +1 -1
  122. package/php/array/uasort.js.map +1 -1
  123. package/php/array/uksort.js.map +1 -1
  124. package/php/array/usort.js.map +1 -1
  125. package/php/bc/bcadd.js +3 -1
  126. package/php/bc/bcadd.js.map +1 -1
  127. package/php/bc/bccomp.js +2 -1
  128. package/php/bc/bccomp.js.map +1 -1
  129. package/php/bc/bcdiv.js +3 -1
  130. package/php/bc/bcdiv.js.map +1 -1
  131. package/php/bc/bcmul.js +3 -1
  132. package/php/bc/bcmul.js.map +1 -1
  133. package/php/bc/bcround.js +4 -2
  134. package/php/bc/bcround.js.map +1 -1
  135. package/php/bc/bcscale.js.map +1 -1
  136. package/php/bc/bcsub.js +3 -1
  137. package/php/bc/bcsub.js.map +1 -1
  138. package/php/bc/index.js +7 -7
  139. package/php/bc/index.js.map +1 -1
  140. package/php/ctype/ctype_alnum.js.map +1 -1
  141. package/php/ctype/ctype_alpha.js.map +1 -1
  142. package/php/ctype/ctype_cntrl.js.map +1 -1
  143. package/php/ctype/ctype_digit.js.map +1 -1
  144. package/php/ctype/ctype_graph.js.map +1 -1
  145. package/php/ctype/ctype_lower.js.map +1 -1
  146. package/php/ctype/ctype_print.js.map +1 -1
  147. package/php/ctype/ctype_punct.js.map +1 -1
  148. package/php/ctype/ctype_space.js.map +1 -1
  149. package/php/ctype/ctype_upper.js.map +1 -1
  150. package/php/ctype/ctype_xdigit.js.map +1 -1
  151. package/php/ctype/index.js +11 -11
  152. package/php/ctype/index.js.map +1 -1
  153. package/php/datetime/date.js +2 -1
  154. package/php/datetime/date.js.map +1 -1
  155. package/php/datetime/date_parse.js +1 -1
  156. package/php/datetime/date_parse.js.map +1 -1
  157. package/php/datetime/getdate.js.map +1 -1
  158. package/php/datetime/gettimeofday.js.map +1 -1
  159. package/php/datetime/gmdate.js.map +1 -1
  160. package/php/datetime/gmmktime.js.map +1 -1
  161. package/php/datetime/gmstrftime.js.map +1 -1
  162. package/php/datetime/idate.js +1 -1
  163. package/php/datetime/idate.js.map +1 -1
  164. package/php/datetime/index.js +15 -15
  165. package/php/datetime/index.js.map +1 -1
  166. package/php/datetime/microtime.js +3 -3
  167. package/php/datetime/microtime.js.map +1 -1
  168. package/php/datetime/mktime.js.map +1 -1
  169. package/php/datetime/strftime.js +2 -3
  170. package/php/datetime/strftime.js.map +1 -1
  171. package/php/datetime/strptime.js +20 -21
  172. package/php/datetime/strptime.js.map +1 -1
  173. package/php/datetime/strtotime.js +170 -4
  174. package/php/datetime/strtotime.js.map +1 -1
  175. package/php/exec/escapeshellarg.js +12 -4
  176. package/php/exec/escapeshellarg.js.map +1 -1
  177. package/php/exec/index.js +1 -1
  178. package/php/exec/index.js.map +1 -1
  179. package/php/filesystem/basename.js.map +1 -1
  180. package/php/filesystem/file_get_contents.js.map +1 -1
  181. package/php/filesystem/index.js +5 -5
  182. package/php/filesystem/index.js.map +1 -1
  183. package/php/filesystem/pathinfo.js +7 -8
  184. package/php/filesystem/pathinfo.js.map +1 -1
  185. package/php/filesystem/realpath.js.map +1 -1
  186. package/php/funchand/call_user_func.js.map +1 -1
  187. package/php/funchand/call_user_func_array.js +1 -1
  188. package/php/funchand/call_user_func_array.js.map +1 -1
  189. package/php/funchand/function_exists.js.map +1 -1
  190. package/php/funchand/get_defined_functions.js.map +1 -1
  191. package/php/funchand/index.js +5 -5
  192. package/php/funchand/index.js.map +1 -1
  193. package/php/i18n/i18n_loc_get_default.js.map +1 -1
  194. package/php/i18n/i18n_loc_set_default.js.map +1 -1
  195. package/php/i18n/index.js +2 -2
  196. package/php/i18n/index.js.map +1 -1
  197. package/php/index.js +19 -19
  198. package/php/index.js.map +1 -1
  199. package/php/info/assert_options.js +2 -1
  200. package/php/info/assert_options.js.map +1 -1
  201. package/php/info/index.js +6 -6
  202. package/php/info/index.js.map +1 -1
  203. package/php/info/ini_get.js.map +1 -1
  204. package/php/info/ini_set.js.map +1 -1
  205. package/php/info/set_time_limit.js.map +1 -1
  206. package/php/info/version_compare.js +21 -22
  207. package/php/info/version_compare.js.map +1 -1
  208. package/php/json/index.js +3 -3
  209. package/php/json/index.js.map +1 -1
  210. package/php/json/json_decode.js +1 -1
  211. package/php/json/json_decode.js.map +1 -1
  212. package/php/json/json_encode.js +1 -1
  213. package/php/json/json_encode.js.map +1 -1
  214. package/php/json/json_last_error.js.map +1 -1
  215. package/php/math/fmod.js +2 -2
  216. package/php/math/fmod.js.map +1 -1
  217. package/php/math/hypot.js.map +1 -1
  218. package/php/math/index.js +46 -46
  219. package/php/math/index.js.map +1 -1
  220. package/php/math/is_finite.js.map +1 -1
  221. package/php/math/is_infinite.js.map +1 -1
  222. package/php/math/is_nan.js.map +1 -1
  223. package/php/math/log1p.js.map +1 -1
  224. package/php/math/max.js +7 -7
  225. package/php/math/max.js.map +1 -1
  226. package/php/math/min.js +5 -5
  227. package/php/math/min.js.map +1 -1
  228. package/php/math/mt_rand.js.map +1 -1
  229. package/php/math/rand.js.map +1 -1
  230. package/php/math/round.js +1 -1
  231. package/php/math/round.js.map +1 -1
  232. package/php/misc/index.js +2 -2
  233. package/php/misc/index.js.map +1 -1
  234. package/php/misc/pack.js +23 -18
  235. package/php/misc/pack.js.map +1 -1
  236. package/php/misc/uniqid.js +1 -1
  237. package/php/misc/uniqid.js.map +1 -1
  238. package/php/net-gopher/gopher_parsedir.js +3 -4
  239. package/php/net-gopher/gopher_parsedir.js.map +1 -1
  240. package/php/net-gopher/index.js +1 -1
  241. package/php/net-gopher/index.js.map +1 -1
  242. package/php/network/index.js +6 -6
  243. package/php/network/index.js.map +1 -1
  244. package/php/network/inet_ntop.js.map +1 -1
  245. package/php/network/inet_pton.js +40 -32
  246. package/php/network/inet_pton.js.map +1 -1
  247. package/php/network/setcookie.js.map +1 -1
  248. package/php/network/setrawcookie.js.map +1 -1
  249. package/php/pcre/index.js +4 -3
  250. package/php/pcre/index.js.map +1 -1
  251. package/php/pcre/preg_replace.js +24 -0
  252. package/php/pcre/preg_replace.js.map +1 -0
  253. package/php/pcre/sql_regcase.js.map +1 -1
  254. package/php/strings/addcslashes.js.map +1 -1
  255. package/php/strings/bin2hex.js +3 -3
  256. package/php/strings/bin2hex.js.map +1 -1
  257. package/php/strings/chop.js.map +1 -1
  258. package/php/strings/convert_cyr_string.js +1 -1
  259. package/php/strings/convert_cyr_string.js.map +1 -1
  260. package/php/strings/convert_uuencode.js.map +1 -1
  261. package/php/strings/count_chars.js +1 -1
  262. package/php/strings/count_chars.js.map +1 -1
  263. package/php/strings/crc32.js.map +1 -1
  264. package/php/strings/echo.js.map +1 -1
  265. package/php/strings/explode.js.map +1 -1
  266. package/php/strings/get_html_translation_table.js +1 -1
  267. package/php/strings/get_html_translation_table.js.map +1 -1
  268. package/php/strings/hex2bin.js +1 -1
  269. package/php/strings/hex2bin.js.map +1 -1
  270. package/php/strings/html_entity_decode.js.map +1 -1
  271. package/php/strings/htmlentities.js.map +1 -1
  272. package/php/strings/htmlspecialchars.js +6 -6
  273. package/php/strings/htmlspecialchars.js.map +1 -1
  274. package/php/strings/htmlspecialchars_decode.js +6 -6
  275. package/php/strings/htmlspecialchars_decode.js.map +1 -1
  276. package/php/strings/implode.js.map +1 -1
  277. package/php/strings/index.js +91 -91
  278. package/php/strings/index.js.map +1 -1
  279. package/php/strings/join.js.map +1 -1
  280. package/php/strings/lcfirst.js.map +1 -1
  281. package/php/strings/levenshtein.js +6 -1
  282. package/php/strings/levenshtein.js.map +1 -1
  283. package/php/strings/localeconv.js.map +1 -1
  284. package/php/strings/ltrim.js.map +1 -1
  285. package/php/strings/md5.js +19 -15
  286. package/php/strings/md5.js.map +1 -1
  287. package/php/strings/md5_file.js.map +1 -1
  288. package/php/strings/metaphone.js +2 -2
  289. package/php/strings/metaphone.js.map +1 -1
  290. package/php/strings/money_format.js.map +1 -1
  291. package/php/strings/nl2br.js.map +1 -1
  292. package/php/strings/nl_langinfo.js.map +1 -1
  293. package/php/strings/number_format.js.map +1 -1
  294. package/php/strings/ord.js.map +1 -1
  295. package/php/strings/parse_str.js +13 -13
  296. package/php/strings/parse_str.js.map +1 -1
  297. package/php/strings/printf.js.map +1 -1
  298. package/php/strings/quoted_printable_decode.js.map +1 -1
  299. package/php/strings/quoted_printable_encode.js.map +1 -1
  300. package/php/strings/rtrim.js.map +1 -1
  301. package/php/strings/setlocale.js +18 -19
  302. package/php/strings/setlocale.js.map +1 -1
  303. package/php/strings/sha1.js +12 -7
  304. package/php/strings/sha1.js.map +1 -1
  305. package/php/strings/sha1_file.js.map +1 -1
  306. package/php/strings/similar_text.js +4 -4
  307. package/php/strings/similar_text.js.map +1 -1
  308. package/php/strings/soundex.js +3 -3
  309. package/php/strings/soundex.js.map +1 -1
  310. package/php/strings/split.js.map +1 -1
  311. package/php/strings/sprintf.js +7 -2
  312. package/php/strings/sprintf.js.map +1 -1
  313. package/php/strings/sscanf.js +2 -2
  314. package/php/strings/sscanf.js.map +1 -1
  315. package/php/strings/str_getcsv.js +2 -2
  316. package/php/strings/str_getcsv.js.map +1 -1
  317. package/php/strings/str_ireplace.js +6 -0
  318. package/php/strings/str_ireplace.js.map +1 -1
  319. package/php/strings/str_pad.js +1 -1
  320. package/php/strings/str_pad.js.map +1 -1
  321. package/php/strings/str_repeat.js.map +1 -1
  322. package/php/strings/str_replace.js +6 -0
  323. package/php/strings/str_replace.js.map +1 -1
  324. package/php/strings/str_shuffle.js +1 -1
  325. package/php/strings/str_shuffle.js.map +1 -1
  326. package/php/strings/str_split.js.map +1 -1
  327. package/php/strings/str_word_count.js.map +1 -1
  328. package/php/strings/strcasecmp.js.map +1 -1
  329. package/php/strings/strchr.js.map +1 -1
  330. package/php/strings/strcoll.js.map +1 -1
  331. package/php/strings/strip_tags.js.map +1 -1
  332. package/php/strings/stripos.js.map +1 -1
  333. package/php/strings/stristr.js.map +1 -1
  334. package/php/strings/strlen.js.map +1 -1
  335. package/php/strings/strnatcasecmp.js.map +1 -1
  336. package/php/strings/strnatcmp.js.map +1 -1
  337. package/php/strings/strncasecmp.js +1 -1
  338. package/php/strings/strncasecmp.js.map +1 -1
  339. package/php/strings/strncmp.js.map +1 -1
  340. package/php/strings/strpbrk.js.map +1 -1
  341. package/php/strings/strpos.js.map +1 -1
  342. package/php/strings/strrchr.js.map +1 -1
  343. package/php/strings/strrev.js.map +1 -1
  344. package/php/strings/strripos.js.map +1 -1
  345. package/php/strings/strrpos.js.map +1 -1
  346. package/php/strings/strspn.js +3 -3
  347. package/php/strings/strspn.js.map +1 -1
  348. package/php/strings/strstr.js.map +1 -1
  349. package/php/strings/strtok.js.map +1 -1
  350. package/php/strings/strtr.js.map +1 -1
  351. package/php/strings/substr.js.map +1 -1
  352. package/php/strings/substr_count.js.map +1 -1
  353. package/php/strings/trim.js.map +1 -1
  354. package/php/strings/ucfirst.js.map +1 -1
  355. package/php/strings/vprintf.js.map +1 -1
  356. package/php/strings/vsprintf.js.map +1 -1
  357. package/php/strings/wordwrap.js +4 -2
  358. package/php/strings/wordwrap.js.map +1 -1
  359. package/php/url/base64_decode.js +8 -8
  360. package/php/url/base64_decode.js.map +1 -1
  361. package/php/url/base64_encode.js +8 -8
  362. package/php/url/base64_encode.js.map +1 -1
  363. package/php/url/http_build_query.js +4 -4
  364. package/php/url/http_build_query.js.map +1 -1
  365. package/php/url/index.js +8 -8
  366. package/php/url/index.js.map +1 -1
  367. package/php/url/parse_url.js +1 -1
  368. package/php/url/parse_url.js.map +1 -1
  369. package/php/var/doubleval.js.map +1 -1
  370. package/php/var/empty.js +4 -4
  371. package/php/var/empty.js.map +1 -1
  372. package/php/var/gettype.js +1 -1
  373. package/php/var/gettype.js.map +1 -1
  374. package/php/var/index.js +30 -30
  375. package/php/var/index.js.map +1 -1
  376. package/php/var/intval.js +2 -1
  377. package/php/var/intval.js.map +1 -1
  378. package/php/var/is_array.js.map +1 -1
  379. package/php/var/is_callable.js.map +1 -1
  380. package/php/var/is_double.js.map +1 -1
  381. package/php/var/is_integer.js.map +1 -1
  382. package/php/var/is_long.js.map +1 -1
  383. package/php/var/is_numeric.js.map +1 -1
  384. package/php/var/is_real.js.map +1 -1
  385. package/php/var/is_unicode.js.map +1 -1
  386. package/php/var/isset.js +1 -1
  387. package/php/var/isset.js.map +1 -1
  388. package/php/var/print_r.js.map +1 -1
  389. package/php/var/serialize.js +7 -5
  390. package/php/var/serialize.js.map +1 -1
  391. package/php/var/strval.js.map +1 -1
  392. package/php/var/unserialize.js +422 -236
  393. package/php/var/unserialize.js.map +1 -1
  394. package/php/var/var_dump.js +3 -3
  395. package/php/var/var_dump.js.map +1 -1
  396. package/php/var/var_export.js +5 -5
  397. package/php/var/var_export.js.map +1 -1
  398. package/php/xdiff/index.js +2 -2
  399. package/php/xdiff/index.js.map +1 -1
  400. package/php/xdiff/xdiff_string_diff.js +30 -30
  401. package/php/xdiff/xdiff_string_diff.js.map +1 -1
  402. package/php/xdiff/xdiff_string_patch.js +7 -8
  403. package/php/xdiff/xdiff_string_patch.js.map +1 -1
  404. package/php/xml/index.js +2 -2
  405. package/php/xml/index.js.map +1 -1
  406. package/php/xml/utf8_decode.js.map +1 -1
  407. package/php/xml/utf8_encode.js +2 -2
  408. package/php/xml/utf8_encode.js.map +1 -1
  409. package/python/index.js +1 -1
  410. package/python/index.js.map +1 -1
  411. package/python/string/capwords.js.map +1 -1
  412. package/python/string/index.js +4 -4
  413. package/python/string/index.js.map +1 -1
  414. package/python/string/punctuation.js +10 -0
  415. package/python/string/punctuation.js.map +1 -0
  416. package/ruby/Math/index.js +1 -1
  417. package/ruby/Math/index.js.map +1 -1
  418. package/ruby/index.js +1 -1
  419. package/ruby/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/datetime/strptime.js"],"names":["module","exports","strptime","dateStr","format","setlocale","require","arrayMap","retObj","tm_sec","tm_min","tm_hour","tm_mday","tm_mon","tm_year","tm_wday","tm_yday","unparsed","i","j","amPmOffset","prevHour","_reset","dateObj","realMday","jan1","o","d","getUTCSeconds","getUTCMinutes","getUTCHours","getUTCDate","getUTCMonth","getUTCFullYear","getUTCDay","Date","UTC","Math","ceil","_date","_NWS","_WS","_aggregates","c","D","F","r","R","T","x","X","_pregQuote","str","replace","$global","window","global","$locutus","locale","php","localeCategories","LC_TIME","lcTime","locales","match","m0","m1","f","_addNext","regex","cb","RegExp","check","slice","exec","testNull","apply","Error","length","_addLocalized","formatChar","category","join","m","search","charAt","literalPos","indexOf","year","parseInt","dayMonth","hour","dayYear","month","minute","test","timestamp","date","second","e"],"mappings":"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","file":"strptime.js","sourcesContent":["module.exports = function strptime (dateStr, format) {\n // discuss at: https://locutus.io/php/strptime/\n // original by: Brett Zamir (https://brett-zamir.me)\n // original by: strftime\n // example 1: strptime('20091112222135', '%Y%m%d%H%M%S') // Return value will depend on date and locale\n // returns 1: {tm_sec: 35, tm_min: 21, tm_hour: 22, tm_mday: 12, tm_mon: 10, tm_year: 109, tm_wday: 4, tm_yday: 315, unparsed: ''}\n // example 2: strptime('2009extra', '%Y')\n // returns 2: {tm_sec:0, tm_min:0, tm_hour:0, tm_mday:0, tm_mon:0, tm_year:109, tm_wday:3, tm_yday: -1, unparsed: 'extra'}\n\n var setlocale = require('../strings/setlocale')\n var arrayMap = require('../array/array_map')\n\n var retObj = {\n tm_sec: 0,\n tm_min: 0,\n tm_hour: 0,\n tm_mday: 0,\n tm_mon: 0,\n tm_year: 0,\n tm_wday: 0,\n tm_yday: 0,\n unparsed: ''\n }\n var i = 0\n var j = 0\n var amPmOffset = 0\n var prevHour = false\n var _reset = function (dateObj, realMday) {\n // realMday is to allow for a value of 0 in return results (but without\n // messing up the Date() object)\n var jan1\n var o = retObj\n var d = dateObj\n o.tm_sec = d.getUTCSeconds()\n o.tm_min = d.getUTCMinutes()\n o.tm_hour = d.getUTCHours()\n o.tm_mday = realMday === 0 ? realMday : d.getUTCDate()\n o.tm_mon = d.getUTCMonth()\n o.tm_year = d.getUTCFullYear() - 1900\n o.tm_wday = realMday === 0 ? (d.getUTCDay() > 0 ? d.getUTCDay() - 1 : 6) : d.getUTCDay()\n jan1 = new Date(Date.UTC(d.getUTCFullYear(), 0, 1))\n o.tm_yday = Math.ceil((d - jan1) / (1000 * 60 * 60 * 24))\n }\n var _date = function () {\n var o = retObj\n // We set date to at least 1 to ensure year or month doesn't go backwards\n return _reset(new Date(Date.UTC(\n o.tm_year + 1900,\n o.tm_mon,\n o.tm_mday || 1,\n o.tm_hour,\n o.tm_min,\n o.tm_sec\n )),\n o.tm_mday)\n }\n\n var _NWS = /\\S/\n var _WS = /\\s/\n\n var _aggregates = {\n c: 'locale',\n D: '%m/%d/%y',\n F: '%y-%m-%d',\n r: 'locale',\n R: '%H:%M',\n T: '%H:%M:%S',\n x: 'locale',\n X: 'locale'\n }\n\n /* Fix: Locale alternatives are supported though not documented in PHP; see https://linux.die.net/man/3/strptime\n Ec\n EC\n Ex\n EX\n Ey\n EY\n Od or Oe\n OH\n OI\n Om\n OM\n OS\n OU\n Ow\n OW\n Oy\n */\n var _pregQuote = function (str) {\n return (str + '').replace(/([\\\\.+*?[^\\]$(){}=!<>|:])/g, '\\\\$1')\n }\n\n // ensure setup of localization variables takes place\n setlocale('LC_ALL', 0)\n\n var $global = (typeof window !== 'undefined' ? window : global)\n $global.$locutus = $global.$locutus || {}\n var $locutus = $global.$locutus\n var locale = $locutus.php.localeCategories.LC_TIME\n var lcTime = $locutus.php.locales[locale].LC_TIME\n\n // First replace aggregates (run in a loop because an agg may be made up of other aggs)\n while (format.match(/%[cDFhnrRtTxX]/)) {\n format = format.replace(/%([cDFhnrRtTxX])/g, function (m0, m1) {\n var f = _aggregates[m1]\n return (f === 'locale' ? lcTime[m1] : f)\n })\n }\n\n var _addNext = function (j, regex, cb) {\n if (typeof regex === 'string') {\n regex = new RegExp('^' + regex, 'i')\n }\n var check = dateStr.slice(j)\n var match = regex.exec(check)\n // Even if the callback returns null after assigning to the\n // return object, the object won't be saved anyways\n var testNull = match ? cb.apply(null, match) : null\n if (testNull === null) {\n throw new Error('No match in string')\n }\n return j + match[0].length\n }\n\n var _addLocalized = function (j, formatChar, category) {\n // Could make each parenthesized instead and pass index to callback:\n return _addNext(j, arrayMap(_pregQuote, lcTime[formatChar]).join('|'),\n function (m) {\n var match = lcTime[formatChar].search(new RegExp('^' + _pregQuote(m) + '$', 'i'))\n if (match) {\n retObj[category] = match[0]\n }\n })\n }\n\n // BEGIN PROCESSING CHARACTERS\n for (i = 0, j = 0; i < format.length; i++) {\n if (format.charAt(i) === '%') {\n var literalPos = ['%', 'n', 't'].indexOf(format.charAt(i + 1))\n if (literalPos !== -1) {\n if (['%', '\\n', '\\t'].indexOf(dateStr.charAt(j)) === literalPos) {\n // a matched literal\n ++i\n // skip beyond\n ++j\n continue\n }\n // Format indicated a percent literal, but not actually present\n return false\n }\n var formatChar = format.charAt(i + 1)\n try {\n switch (formatChar) {\n case 'a':\n case 'A':\n // Sunday-Saturday\n // Changes nothing else\n j = _addLocalized(j, formatChar, 'tm_wday')\n break\n case 'h':\n case 'b':\n // Jan-Dec\n j = _addLocalized(j, 'b', 'tm_mon')\n // Also changes wday, yday\n _date()\n break\n case 'B':\n // January-December\n j = _addLocalized(j, formatChar, 'tm_mon')\n // Also changes wday, yday\n _date()\n break\n case 'C':\n // 0+; century (19 for 20th)\n // PHP docs say two-digit, but accepts one-digit (two-digit max):\n j = _addNext(j, /^\\d?\\d/,\n\n function (d) {\n var year = (parseInt(d, 10) - 19) * 100\n retObj.tm_year = year\n _date()\n if (!retObj.tm_yday) {\n retObj.tm_yday = -1\n }\n // Also changes wday; and sets yday to -1 (always?)\n })\n break\n case 'd':\n case 'e':\n // 1-31 day\n j = _addNext(j, formatChar === 'd'\n ? /^(0[1-9]|[1-2]\\d|3[0-1])/\n : /^([1-2]\\d|3[0-1]|[1-9])/,\n function (d) {\n var dayMonth = parseInt(d, 10)\n retObj.tm_mday = dayMonth\n // Also changes w_day, y_day\n _date()\n })\n break\n case 'g':\n // No apparent effect; 2-digit year (see 'V')\n break\n case 'G':\n // No apparent effect; 4-digit year (see 'V')'\n break\n case 'H':\n // 00-23 hours\n j = _addNext(j, /^([0-1]\\d|2[0-3])/, function (d) {\n var hour = parseInt(d, 10)\n retObj.tm_hour = hour\n // Changes nothing else\n })\n break\n case 'l':\n case 'I':\n // 01-12 hours\n j = _addNext(j, formatChar === 'l'\n ? /^([1-9]|1[0-2])/\n : /^(0[1-9]|1[0-2])/,\n function (d) {\n var hour = parseInt(d, 10) - 1 + amPmOffset\n retObj.tm_hour = hour\n // Used for coordinating with am-pm\n prevHour = true\n // Changes nothing else, but affected by prior 'p/P'\n })\n break\n case 'j':\n // 001-366 day of year\n j = _addNext(j, /^(00[1-9]|0[1-9]\\d|[1-2]\\d\\d|3[0-6][0-6])/, function (d) {\n var dayYear = parseInt(d, 10) - 1\n retObj.tm_yday = dayYear\n // Changes nothing else\n // (oddly, since if original by a given year, could calculate other fields)\n })\n break\n case 'm':\n // 01-12 month\n j = _addNext(j, /^(0[1-9]|1[0-2])/, function (d) {\n var month = parseInt(d, 10) - 1\n retObj.tm_mon = month\n // Also sets wday and yday\n _date()\n })\n break\n case 'M':\n // 00-59 minutes\n j = _addNext(j, /^[0-5]\\d/, function (d) {\n var minute = parseInt(d, 10)\n retObj.tm_min = minute\n // Changes nothing else\n })\n break\n case 'P':\n // Seems not to work; AM-PM\n // Could make fall-through instead since supposed to be a synonym despite PHP docs\n return false\n case 'p':\n // am-pm\n j = _addNext(j, /^(am|pm)/i, function (d) {\n // No effect on 'H' since already 24 hours but\n // works before or after setting of l/I hour\n amPmOffset = (/a/)\n .test(d) ? 0 : 12\n if (prevHour) {\n retObj.tm_hour += amPmOffset\n }\n })\n break\n case 's':\n // Unix timestamp (in seconds)\n j = _addNext(j, /^\\d+/, function (d) {\n var timestamp = parseInt(d, 10)\n var date = new Date(Date.UTC(timestamp * 1000))\n _reset(date)\n // Affects all fields, but can't be negative (and initial + not allowed)\n })\n break\n case 'S':\n // 00-59 seconds\n j = _addNext(j, /^[0-5]\\d/, // strptime also accepts 60-61 for some reason\n\n function (d) {\n var second = parseInt(d, 10)\n retObj.tm_sec = second\n // Changes nothing else\n })\n break\n case 'u':\n case 'w':\n // 0 (Sunday)-6(Saturday)\n j = _addNext(j, /^\\d/, function (d) {\n retObj.tm_wday = d - (formatChar === 'u')\n // Changes nothing else apparently\n })\n break\n case 'U':\n case 'V':\n case 'W':\n // Apparently ignored (week of year, from 1st Monday)\n break\n case 'y':\n // 69 (or higher) for 1969+, 68 (or lower) for 2068-\n // PHP docs say two-digit, but accepts one-digit (two-digit max):\n j = _addNext(j, /^\\d?\\d/,\n\n function (d) {\n d = parseInt(d, 10)\n var year = d >= 69 ? d : d + 100\n retObj.tm_year = year\n _date()\n if (!retObj.tm_yday) {\n retObj.tm_yday = -1\n }\n // Also changes wday; and sets yday to -1 (always?)\n })\n break\n case 'Y':\n // 2010 (4-digit year)\n // PHP docs say four-digit, but accepts one-digit (four-digit max):\n j = _addNext(j, /^\\d{1,4}/,\n\n function (d) {\n var year = (parseInt(d, 10)) - 1900\n retObj.tm_year = year\n _date()\n if (!retObj.tm_yday) {\n retObj.tm_yday = -1\n }\n // Also changes wday; and sets yday to -1 (always?)\n })\n break\n case 'z':\n // Timezone; on my system, strftime gives -0800,\n // but strptime seems not to alter hour setting\n break\n case 'Z':\n // Timezone; on my system, strftime gives PST, but strptime treats text as unparsed\n break\n default:\n throw new Error('Unrecognized formatting character in strptime()')\n }\n } catch (e) {\n if (e === 'No match in string') {\n // Allow us to exit\n // There was supposed to be a matching format but there wasn't\n return false\n }\n // Calculate skipping beyond initial percent too\n }\n ++i\n } else if (format.charAt(i) !== dateStr.charAt(j)) {\n // If extra whitespace at beginning or end of either, or between formats, no problem\n // (just a problem when between % and format specifier)\n\n // If the string has white-space, it is ok to ignore\n if (dateStr.charAt(j).search(_WS) !== -1) {\n j++\n // Let the next iteration try again with the same format character\n i--\n } else if (format.charAt(i).search(_NWS) !== -1) {\n // Any extra formatting characters besides white-space causes\n // problems (do check after WS though, as may just be WS in string before next character)\n return false\n }\n // Extra WS in format\n // Adjust strings when encounter non-matching whitespace, so they align in future checks above\n // Will check on next iteration (against same (non-WS) string character)\n } else {\n j++\n }\n }\n\n // POST-PROCESSING\n // Will also get extra whitespace; empty string if none\n retObj.unparsed = dateStr.slice(j)\n return retObj\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/datetime/strptime.js"],"names":["module","exports","strptime","dateStr","format","setlocale","require","arrayMap","retObj","tm_sec","tm_min","tm_hour","tm_mday","tm_mon","tm_year","tm_wday","tm_yday","unparsed","i","j","amPmOffset","prevHour","_reset","dateObj","realMday","jan1","o","d","getUTCSeconds","getUTCMinutes","getUTCHours","getUTCDate","getUTCMonth","getUTCFullYear","getUTCDay","Date","UTC","Math","ceil","_date","_NWS","_WS","_aggregates","c","D","F","r","R","T","x","X","_pregQuote","str","replace","$global","window","global","$locutus","locale","php","localeCategories","LC_TIME","lcTime","locales","match","m0","m1","f","_addNext","regex","cb","RegExp","check","slice","exec","testNull","apply","Error","length","_addLocalized","formatChar","category","join","m","search","charAt","literalPos","indexOf","year","parseInt","dayMonth","hour","dayYear","month","minute","test","timestamp","date","second","e"],"mappings":"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","file":"strptime.js","sourcesContent":["module.exports = function strptime (dateStr, format) {\n // discuss at: https://locutus.io/php/strptime/\n // original by: Brett Zamir (https://brett-zamir.me)\n // original by: strftime\n // example 1: strptime('20091112222135', '%Y%m%d%H%M%S') // Return value will depend on date and locale\n // returns 1: {tm_sec: 35, tm_min: 21, tm_hour: 22, tm_mday: 12, tm_mon: 10, tm_year: 109, tm_wday: 4, tm_yday: 315, unparsed: ''}\n // example 2: strptime('2009extra', '%Y')\n // returns 2: {tm_sec:0, tm_min:0, tm_hour:0, tm_mday:0, tm_mon:0, tm_year:109, tm_wday:3, tm_yday: -1, unparsed: 'extra'}\n\n const setlocale = require('../strings/setlocale')\n const arrayMap = require('../array/array_map')\n\n const retObj = {\n tm_sec: 0,\n tm_min: 0,\n tm_hour: 0,\n tm_mday: 0,\n tm_mon: 0,\n tm_year: 0,\n tm_wday: 0,\n tm_yday: 0,\n unparsed: ''\n }\n let i = 0\n let j = 0\n let amPmOffset = 0\n let prevHour = false\n const _reset = function (dateObj, realMday) {\n // realMday is to allow for a value of 0 in return results (but without\n // messing up the Date() object)\n let jan1\n const o = retObj\n const d = dateObj\n o.tm_sec = d.getUTCSeconds()\n o.tm_min = d.getUTCMinutes()\n o.tm_hour = d.getUTCHours()\n o.tm_mday = realMday === 0 ? realMday : d.getUTCDate()\n o.tm_mon = d.getUTCMonth()\n o.tm_year = d.getUTCFullYear() - 1900\n o.tm_wday = realMday === 0 ? (d.getUTCDay() > 0 ? d.getUTCDay() - 1 : 6) : d.getUTCDay()\n jan1 = new Date(Date.UTC(d.getUTCFullYear(), 0, 1))\n o.tm_yday = Math.ceil((d - jan1) / (1000 * 60 * 60 * 24))\n }\n const _date = function () {\n const o = retObj\n // We set date to at least 1 to ensure year or month doesn't go backwards\n return _reset(new Date(Date.UTC(\n o.tm_year + 1900,\n o.tm_mon,\n o.tm_mday || 1,\n o.tm_hour,\n o.tm_min,\n o.tm_sec\n )),\n o.tm_mday)\n }\n\n const _NWS = /\\S/\n const _WS = /\\s/\n\n const _aggregates = {\n c: 'locale',\n D: '%m/%d/%y',\n F: '%y-%m-%d',\n r: 'locale',\n R: '%H:%M',\n T: '%H:%M:%S',\n x: 'locale',\n X: 'locale'\n }\n\n /* Fix: Locale alternatives are supported though not documented in PHP; see https://linux.die.net/man/3/strptime\n Ec\n EC\n Ex\n EX\n Ey\n EY\n Od or Oe\n OH\n OI\n Om\n OM\n OS\n OU\n Ow\n OW\n Oy\n */\n const _pregQuote = function (str) {\n return (str + '').replace(/([\\\\.+*?[^\\]$(){}=!<>|:])/g, '\\\\$1')\n }\n\n // ensure setup of localization variables takes place\n setlocale('LC_ALL', 0)\n\n const $global = (typeof window !== 'undefined' ? window : global)\n $global.$locutus = $global.$locutus || {}\n const $locutus = $global.$locutus\n const locale = $locutus.php.localeCategories.LC_TIME\n const lcTime = $locutus.php.locales[locale].LC_TIME\n\n // First replace aggregates (run in a loop because an agg may be made up of other aggs)\n while (format.match(/%[cDFhnrRtTxX]/)) {\n format = format.replace(/%([cDFhnrRtTxX])/g, function (m0, m1) {\n const f = _aggregates[m1]\n return (f === 'locale' ? lcTime[m1] : f)\n })\n }\n\n const _addNext = function (j, regex, cb) {\n if (typeof regex === 'string') {\n regex = new RegExp('^' + regex, 'i')\n }\n const check = dateStr.slice(j)\n const match = regex.exec(check)\n // Even if the callback returns null after assigning to the\n // return object, the object won't be saved anyways\n const testNull = match ? cb.apply(null, match) : null\n if (testNull === null) {\n throw new Error('No match in string')\n }\n return j + match[0].length\n }\n\n const _addLocalized = function (j, formatChar, category) {\n // Could make each parenthesized instead and pass index to callback:\n return _addNext(j, arrayMap(_pregQuote, lcTime[formatChar]).join('|'),\n function (m) {\n const match = lcTime[formatChar].search(new RegExp('^' + _pregQuote(m) + '$', 'i'))\n if (match) {\n retObj[category] = match[0]\n }\n })\n }\n\n // BEGIN PROCESSING CHARACTERS\n for (i = 0, j = 0; i < format.length; i++) {\n if (format.charAt(i) === '%') {\n const literalPos = ['%', 'n', 't'].indexOf(format.charAt(i + 1))\n if (literalPos !== -1) {\n if (['%', '\\n', '\\t'].indexOf(dateStr.charAt(j)) === literalPos) {\n // a matched literal\n ++i\n // skip beyond\n ++j\n continue\n }\n // Format indicated a percent literal, but not actually present\n return false\n }\n var formatChar = format.charAt(i + 1)\n try {\n switch (formatChar) {\n case 'a':\n case 'A':\n // Sunday-Saturday\n // Changes nothing else\n j = _addLocalized(j, formatChar, 'tm_wday')\n break\n case 'h':\n case 'b':\n // Jan-Dec\n j = _addLocalized(j, 'b', 'tm_mon')\n // Also changes wday, yday\n _date()\n break\n case 'B':\n // January-December\n j = _addLocalized(j, formatChar, 'tm_mon')\n // Also changes wday, yday\n _date()\n break\n case 'C':\n // 0+; century (19 for 20th)\n // PHP docs say two-digit, but accepts one-digit (two-digit max):\n j = _addNext(j, /^\\d?\\d/,\n\n function (d) {\n const year = (parseInt(d, 10) - 19) * 100\n retObj.tm_year = year\n _date()\n if (!retObj.tm_yday) {\n retObj.tm_yday = -1\n }\n // Also changes wday; and sets yday to -1 (always?)\n })\n break\n case 'd':\n case 'e':\n // 1-31 day\n j = _addNext(j, formatChar === 'd'\n ? /^(0[1-9]|[1-2]\\d|3[0-1])/\n : /^([1-2]\\d|3[0-1]|[1-9])/,\n function (d) {\n const dayMonth = parseInt(d, 10)\n retObj.tm_mday = dayMonth\n // Also changes w_day, y_day\n _date()\n })\n break\n case 'g':\n // No apparent effect; 2-digit year (see 'V')\n break\n case 'G':\n // No apparent effect; 4-digit year (see 'V')'\n break\n case 'H':\n // 00-23 hours\n j = _addNext(j, /^([0-1]\\d|2[0-3])/, function (d) {\n const hour = parseInt(d, 10)\n retObj.tm_hour = hour\n // Changes nothing else\n })\n break\n case 'l':\n case 'I':\n // 01-12 hours\n j = _addNext(j, formatChar === 'l'\n ? /^([1-9]|1[0-2])/\n : /^(0[1-9]|1[0-2])/,\n function (d) {\n const hour = parseInt(d, 10) - 1 + amPmOffset\n retObj.tm_hour = hour\n // Used for coordinating with am-pm\n prevHour = true\n // Changes nothing else, but affected by prior 'p/P'\n })\n break\n case 'j':\n // 001-366 day of year\n j = _addNext(j, /^(00[1-9]|0[1-9]\\d|[1-2]\\d\\d|3[0-6][0-6])/, function (d) {\n const dayYear = parseInt(d, 10) - 1\n retObj.tm_yday = dayYear\n // Changes nothing else\n // (oddly, since if original by a given year, could calculate other fields)\n })\n break\n case 'm':\n // 01-12 month\n j = _addNext(j, /^(0[1-9]|1[0-2])/, function (d) {\n const month = parseInt(d, 10) - 1\n retObj.tm_mon = month\n // Also sets wday and yday\n _date()\n })\n break\n case 'M':\n // 00-59 minutes\n j = _addNext(j, /^[0-5]\\d/, function (d) {\n const minute = parseInt(d, 10)\n retObj.tm_min = minute\n // Changes nothing else\n })\n break\n case 'P':\n // Seems not to work; AM-PM\n // Could make fall-through instead since supposed to be a synonym despite PHP docs\n return false\n case 'p':\n // am-pm\n j = _addNext(j, /^(am|pm)/i, function (d) {\n // No effect on 'H' since already 24 hours but\n // works before or after setting of l/I hour\n amPmOffset = /a/.test(d) ? 0 : 12\n if (prevHour) {\n retObj.tm_hour += amPmOffset\n }\n })\n break\n case 's':\n // Unix timestamp (in seconds)\n j = _addNext(j, /^\\d+/, function (d) {\n const timestamp = parseInt(d, 10)\n const date = new Date(Date.UTC(timestamp * 1000))\n _reset(date)\n // Affects all fields, but can't be negative (and initial + not allowed)\n })\n break\n case 'S':\n // 00-59 seconds\n j = _addNext(j, /^[0-5]\\d/, // strptime also accepts 60-61 for some reason\n\n function (d) {\n const second = parseInt(d, 10)\n retObj.tm_sec = second\n // Changes nothing else\n })\n break\n case 'u':\n case 'w':\n // 0 (Sunday)-6(Saturday)\n j = _addNext(j, /^\\d/, function (d) {\n retObj.tm_wday = d - (formatChar === 'u')\n // Changes nothing else apparently\n })\n break\n case 'U':\n case 'V':\n case 'W':\n // Apparently ignored (week of year, from 1st Monday)\n break\n case 'y':\n // 69 (or higher) for 1969+, 68 (or lower) for 2068-\n // PHP docs say two-digit, but accepts one-digit (two-digit max):\n j = _addNext(j, /^\\d?\\d/,\n\n function (d) {\n d = parseInt(d, 10)\n const year = d >= 69 ? d : d + 100\n retObj.tm_year = year\n _date()\n if (!retObj.tm_yday) {\n retObj.tm_yday = -1\n }\n // Also changes wday; and sets yday to -1 (always?)\n })\n break\n case 'Y':\n // 2010 (4-digit year)\n // PHP docs say four-digit, but accepts one-digit (four-digit max):\n j = _addNext(j, /^\\d{1,4}/,\n\n function (d) {\n const year = (parseInt(d, 10)) - 1900\n retObj.tm_year = year\n _date()\n if (!retObj.tm_yday) {\n retObj.tm_yday = -1\n }\n // Also changes wday; and sets yday to -1 (always?)\n })\n break\n case 'z':\n // Timezone; on my system, strftime gives -0800,\n // but strptime seems not to alter hour setting\n break\n case 'Z':\n // Timezone; on my system, strftime gives PST, but strptime treats text as unparsed\n break\n default:\n throw new Error('Unrecognized formatting character in strptime()')\n }\n } catch (e) {\n if (e === 'No match in string') {\n // Allow us to exit\n // There was supposed to be a matching format but there wasn't\n return false\n }\n // Calculate skipping beyond initial percent too\n }\n ++i\n } else if (format.charAt(i) !== dateStr.charAt(j)) {\n // If extra whitespace at beginning or end of either, or between formats, no problem\n // (just a problem when between % and format specifier)\n\n // If the string has white-space, it is ok to ignore\n if (dateStr.charAt(j).search(_WS) !== -1) {\n j++\n // Let the next iteration try again with the same format character\n i--\n } else if (format.charAt(i).search(_NWS) !== -1) {\n // Any extra formatting characters besides white-space causes\n // problems (do check after WS though, as may just be WS in string before next character)\n return false\n }\n // Extra WS in format\n // Adjust strings when encounter non-matching whitespace, so they align in future checks above\n // Will check on next iteration (against same (non-WS) string character)\n } else {\n j++\n }\n }\n\n // POST-PROCESSING\n // Will also get extra whitespace; empty string if none\n retObj.unparsed = dateStr.slice(j)\n return retObj\n}\n"]}
@@ -35,6 +35,7 @@ var reMonthroman = 'i[vx]|vi{0,3}|xi{0,2}|i{1,3}';
35
35
  var reMonthText = '(' + reMonthFull + '|' + reMonthAbbr + '|' + reMonthroman + ')';
36
36
 
37
37
  var reTzCorrection = '((?:GMT)?([+-])' + reHour24 + ':?' + reMinute + '?)';
38
+ var reTzAbbr = '\\(?([a-zA-Z]{1,6})\\)?';
38
39
  var reDayOfYear = '(00[1-9]|0[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-6])';
39
40
  var reWeekOfYear = '(0[1-9]|[1-4][0-9]|5[0-3])';
40
41
 
@@ -170,7 +171,7 @@ function processTzCorrection(tzOffset, oldValue) {
170
171
  return oldValue;
171
172
  }
172
173
 
173
- var sign = tzOffset[1] === '-' ? 1 : -1;
174
+ var sign = tzOffset[1] === '-' ? -1 : 1;
174
175
  var hours = +tzOffset[2];
175
176
  var minutes = +tzOffset[4];
176
177
 
@@ -179,9 +180,158 @@ function processTzCorrection(tzOffset, oldValue) {
179
180
  hours = Math.floor(hours / 100);
180
181
  }
181
182
 
182
- return sign * (hours * 60 + minutes);
183
+ // timezone offset in seconds
184
+ return sign * (hours * 60 + minutes) * 60;
183
185
  }
184
186
 
187
+ // tz abbrevation : tz offset in seconds
188
+ var tzAbbrOffsets = {
189
+ acdt: 37800,
190
+ acst: 34200,
191
+ addt: -7200,
192
+ adt: -10800,
193
+ aedt: 39600,
194
+ aest: 36000,
195
+ ahdt: -32400,
196
+ ahst: -36000,
197
+ akdt: -28800,
198
+ akst: -32400,
199
+ amt: -13840,
200
+ apt: -10800,
201
+ ast: -14400,
202
+ awdt: 32400,
203
+ awst: 28800,
204
+ awt: -10800,
205
+ bdst: 7200,
206
+ bdt: -36000,
207
+ bmt: -14309,
208
+ bst: 3600,
209
+ cast: 34200,
210
+ cat: 7200,
211
+ cddt: -14400,
212
+ cdt: -18000,
213
+ cemt: 10800,
214
+ cest: 7200,
215
+ cet: 3600,
216
+ cmt: -15408,
217
+ cpt: -18000,
218
+ cst: -21600,
219
+ cwt: -18000,
220
+ chst: 36000,
221
+ dmt: -1521,
222
+ eat: 10800,
223
+ eddt: -10800,
224
+ edt: -14400,
225
+ eest: 10800,
226
+ eet: 7200,
227
+ emt: -26248,
228
+ ept: -14400,
229
+ est: -18000,
230
+ ewt: -14400,
231
+ ffmt: -14660,
232
+ fmt: -4056,
233
+ gdt: 39600,
234
+ gmt: 0,
235
+ gst: 36000,
236
+ hdt: -34200,
237
+ hkst: 32400,
238
+ hkt: 28800,
239
+ hmt: -19776,
240
+ hpt: -34200,
241
+ hst: -36000,
242
+ hwt: -34200,
243
+ iddt: 14400,
244
+ idt: 10800,
245
+ imt: 25025,
246
+ ist: 7200,
247
+ jdt: 36000,
248
+ jmt: 8440,
249
+ jst: 32400,
250
+ kdt: 36000,
251
+ kmt: 5736,
252
+ kst: 30600,
253
+ lst: 9394,
254
+ mddt: -18000,
255
+ mdst: 16279,
256
+ mdt: -21600,
257
+ mest: 7200,
258
+ met: 3600,
259
+ mmt: 9017,
260
+ mpt: -21600,
261
+ msd: 14400,
262
+ msk: 10800,
263
+ mst: -25200,
264
+ mwt: -21600,
265
+ nddt: -5400,
266
+ ndt: -9052,
267
+ npt: -9000,
268
+ nst: -12600,
269
+ nwt: -9000,
270
+ nzdt: 46800,
271
+ nzmt: 41400,
272
+ nzst: 43200,
273
+ pddt: -21600,
274
+ pdt: -25200,
275
+ pkst: 21600,
276
+ pkt: 18000,
277
+ plmt: 25590,
278
+ pmt: -13236,
279
+ ppmt: -17340,
280
+ ppt: -25200,
281
+ pst: -28800,
282
+ pwt: -25200,
283
+ qmt: -18840,
284
+ rmt: 5794,
285
+ sast: 7200,
286
+ sdmt: -16800,
287
+ sjmt: -20173,
288
+ smt: -13884,
289
+ sst: -39600,
290
+ tbmt: 10751,
291
+ tmt: 12344,
292
+ uct: 0,
293
+ utc: 0,
294
+ wast: 7200,
295
+ wat: 3600,
296
+ wemt: 7200,
297
+ west: 3600,
298
+ wet: 0,
299
+ wib: 25200,
300
+ wita: 28800,
301
+ wit: 32400,
302
+ wmt: 5040,
303
+ yddt: -25200,
304
+ ydt: -28800,
305
+ ypt: -28800,
306
+ yst: -32400,
307
+ ywt: -28800,
308
+ a: 3600,
309
+ b: 7200,
310
+ c: 10800,
311
+ d: 14400,
312
+ e: 18000,
313
+ f: 21600,
314
+ g: 25200,
315
+ h: 28800,
316
+ i: 32400,
317
+ k: 36000,
318
+ l: 39600,
319
+ m: 43200,
320
+ n: -3600,
321
+ o: -7200,
322
+ p: -10800,
323
+ q: -14400,
324
+ r: -18000,
325
+ s: -21600,
326
+ t: -25200,
327
+ u: -28800,
328
+ v: -32400,
329
+ w: -36000,
330
+ x: -39600,
331
+ y: -43200,
332
+ z: 0
333
+ };
334
+
185
335
  var formats = {
186
336
  yesterday: {
187
337
  regex: /^yesterday/i,
@@ -774,6 +924,20 @@ var formats = {
774
924
  }
775
925
  },
776
926
 
927
+ tzAbbr: {
928
+ regex: RegExp('^' + reTzAbbr),
929
+ name: 'tzabbr',
930
+ callback: function callback(match, abbr) {
931
+ var offset = tzAbbrOffsets[abbr.toLowerCase()];
932
+
933
+ if (isNaN(offset)) {
934
+ return false;
935
+ }
936
+
937
+ return this.zone(offset);
938
+ }
939
+ },
940
+
777
941
  ago: {
778
942
  regex: /^ago/i,
779
943
  name: 'ago',
@@ -1035,7 +1199,7 @@ var resultProto = {
1035
1199
  if (!isNaN(this.z) && result.getTimezoneOffset() !== this.z) {
1036
1200
  result.setUTCFullYear(result.getFullYear(), result.getMonth(), result.getDate());
1037
1201
 
1038
- result.setUTCHours(result.getHours(), result.getMinutes() + this.z, result.getSeconds(), result.getMilliseconds());
1202
+ result.setUTCHours(result.getHours(), result.getMinutes(), result.getSeconds() - this.z, result.getMilliseconds());
1039
1203
  }
1040
1204
 
1041
1205
  return result;
@@ -1068,6 +1232,8 @@ module.exports = function strtotime(str, now) {
1068
1232
  // returns 4: 1241425800
1069
1233
  // example 5: strtotime('2009-05-04 08:30:00+02:00')
1070
1234
  // returns 5: 1241418600
1235
+ // example 6: strtotime('2009-05-04 08:30:00 YWT')
1236
+ // returns 6: 1241454600
1071
1237
 
1072
1238
  if (now == null) {
1073
1239
  now = Math.floor(Date.now() / 1000);
@@ -1078,7 +1244,7 @@ module.exports = function strtotime(str, now) {
1078
1244
  // if multiple rules match the same string, the first match wins
1079
1245
  var rules = [formats.yesterday, formats.now, formats.noon, formats.midnightOrToday, formats.tomorrow, formats.timestamp, formats.firstOrLastDay, formats.backOrFrontOf,
1080
1246
  // formats.weekdayOf, // not yet implemented
1081
- formats.timeTiny12, formats.timeShort12, formats.timeLong12, formats.mssqltime, formats.timeShort24, formats.timeLong24, formats.iso8601long, formats.gnuNoColon, formats.iso8601noColon, formats.americanShort, formats.american, formats.iso8601date4, formats.iso8601dateSlash, formats.dateSlash, formats.gnuDateShortOrIso8601date2, formats.gnuDateShorter, formats.dateFull, formats.pointedDate4, formats.pointedDate2, formats.dateNoDay, formats.dateNoDayRev, formats.dateTextual, formats.dateNoYear, formats.dateNoYearRev, formats.dateNoColon, formats.xmlRpc, formats.xmlRpcNoColon, formats.soap, formats.wddx, formats.exif, formats.pgydotd, formats.isoWeekDay, formats.pgTextShort, formats.pgTextReverse, formats.clf, formats.year4, formats.ago, formats.dayText, formats.relativeTextWeek, formats.relativeText, formats.monthFullOrMonthAbbr, formats.tzCorrection, formats.dateShortWithTimeShort12, formats.dateShortWithTimeLong12, formats.dateShortWithTimeShort, formats.dateShortWithTimeLong, formats.relative, formats.whitespace];
1247
+ formats.timeTiny12, formats.timeShort12, formats.timeLong12, formats.mssqltime, formats.timeShort24, formats.timeLong24, formats.iso8601long, formats.gnuNoColon, formats.iso8601noColon, formats.americanShort, formats.american, formats.iso8601date4, formats.iso8601dateSlash, formats.dateSlash, formats.gnuDateShortOrIso8601date2, formats.gnuDateShorter, formats.dateFull, formats.pointedDate4, formats.pointedDate2, formats.dateNoDay, formats.dateNoDayRev, formats.dateTextual, formats.dateNoYear, formats.dateNoYearRev, formats.dateNoColon, formats.xmlRpc, formats.xmlRpcNoColon, formats.soap, formats.wddx, formats.exif, formats.pgydotd, formats.isoWeekDay, formats.pgTextShort, formats.pgTextReverse, formats.clf, formats.year4, formats.ago, formats.dayText, formats.relativeTextWeek, formats.relativeText, formats.monthFullOrMonthAbbr, formats.tzCorrection, formats.tzAbbr, formats.dateShortWithTimeShort12, formats.dateShortWithTimeLong12, formats.dateShortWithTimeShort, formats.dateShortWithTimeLong, formats.relative, formats.whitespace];
1082
1248
 
1083
1249
  var result = Object.create(resultProto);
1084
1250