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.
- package/_util/cli.js.map +1 -1
- package/_util/util.js +11 -16
- package/_util/util.js.map +1 -1
- package/c/index.js +2 -2
- package/c/index.js.map +1 -1
- package/c/math/index.js +2 -2
- package/c/math/index.js.map +1 -1
- package/c/stdio/index.js +1 -1
- package/c/stdio/index.js.map +1 -1
- package/c/stdio/sprintf.js +8 -1
- package/c/stdio/sprintf.js.map +1 -1
- package/golang/index.js +1 -1
- package/golang/index.js.map +1 -1
- package/golang/strings/Count.js +1 -1
- package/golang/strings/Count.js.map +1 -1
- package/golang/strings/index.js +4 -4
- package/golang/strings/index.js.map +1 -1
- package/index.js +5 -5
- package/index.js.map +1 -1
- package/package.json +39 -40
- package/php/_helpers/_bc.js +104 -48
- package/php/_helpers/_bc.js.map +1 -1
- package/php/_helpers/_phpCastString.js.map +1 -1
- package/php/_helpers/_php_cast_float.js.map +1 -1
- package/php/_helpers/_php_cast_int.js.map +1 -1
- package/php/_helpers/index.js +4 -4
- package/php/_helpers/index.js.map +1 -1
- package/php/array/array_change_key_case.js +2 -2
- package/php/array/array_change_key_case.js.map +1 -1
- package/php/array/array_chunk.js +1 -1
- package/php/array/array_chunk.js.map +1 -1
- package/php/array/array_column.js.map +1 -1
- package/php/array/array_combine.js.map +1 -1
- package/php/array/array_count_values.js.map +1 -1
- package/php/array/array_diff.js.map +1 -1
- package/php/array/array_diff_assoc.js.map +1 -1
- package/php/array/array_diff_key.js.map +1 -1
- package/php/array/array_diff_uassoc.js.map +1 -1
- package/php/array/array_diff_ukey.js.map +1 -1
- package/php/array/array_fill.js +1 -1
- package/php/array/array_fill.js.map +1 -1
- package/php/array/array_fill_keys.js.map +1 -1
- package/php/array/array_filter.js +1 -1
- package/php/array/array_filter.js.map +1 -1
- package/php/array/array_flip.js +1 -1
- package/php/array/array_flip.js.map +1 -1
- package/php/array/array_intersect.js.map +1 -1
- package/php/array/array_intersect_assoc.js.map +1 -1
- package/php/array/array_intersect_key.js.map +1 -1
- package/php/array/array_intersect_uassoc.js.map +1 -1
- package/php/array/array_intersect_ukey.js.map +1 -1
- package/php/array/array_keys.js.map +1 -1
- package/php/array/array_map.js.map +1 -1
- package/php/array/array_merge.js +1 -1
- package/php/array/array_merge.js.map +1 -1
- package/php/array/array_merge_recursive.js.map +1 -1
- package/php/array/array_multisort.js +16 -16
- package/php/array/array_multisort.js.map +1 -1
- package/php/array/array_pad.js +1 -1
- package/php/array/array_pad.js.map +1 -1
- package/php/array/array_pop.js.map +1 -1
- package/php/array/array_product.js.map +1 -1
- package/php/array/array_push.js.map +1 -1
- package/php/array/array_rand.js.map +1 -1
- package/php/array/array_reduce.js.map +1 -1
- package/php/array/array_replace.js.map +1 -1
- package/php/array/array_replace_recursive.js +1 -1
- package/php/array/array_replace_recursive.js.map +1 -1
- package/php/array/array_reverse.js +1 -1
- package/php/array/array_reverse.js.map +1 -1
- package/php/array/array_search.js.map +1 -1
- package/php/array/array_shift.js +0 -19
- package/php/array/array_shift.js.map +1 -1
- package/php/array/array_slice.js.map +1 -1
- package/php/array/array_splice.js.map +1 -1
- package/php/array/array_sum.js +1 -1
- package/php/array/array_sum.js.map +1 -1
- package/php/array/array_udiff.js.map +1 -1
- package/php/array/array_udiff_assoc.js.map +1 -1
- package/php/array/array_udiff_uassoc.js.map +1 -1
- package/php/array/array_uintersect.js.map +1 -1
- package/php/array/array_uintersect_uassoc.js.map +1 -1
- package/php/array/array_unique.js.map +1 -1
- package/php/array/array_unshift.js.map +1 -1
- package/php/array/array_values.js.map +1 -1
- package/php/array/array_walk.js.map +1 -1
- package/php/array/array_walk_recursive.js.map +1 -1
- package/php/array/arsort.js +3 -3
- package/php/array/arsort.js.map +1 -1
- package/php/array/asort.js +3 -3
- package/php/array/asort.js.map +1 -1
- package/php/array/count.js +1 -1
- package/php/array/count.js.map +1 -1
- package/php/array/current.js.map +1 -1
- package/php/array/each.js.map +1 -1
- package/php/array/end.js +1 -1
- package/php/array/end.js.map +1 -1
- package/php/array/in_array.js.map +1 -1
- package/php/array/index.js +73 -72
- package/php/array/index.js.map +1 -1
- package/php/array/key.js.map +1 -1
- package/php/array/krsort.js +3 -3
- package/php/array/krsort.js.map +1 -1
- package/php/array/ksort.js +3 -3
- package/php/array/ksort.js.map +1 -1
- package/php/array/natcasesort.js +2 -2
- package/php/array/natcasesort.js.map +1 -1
- package/php/array/natsort.js +2 -2
- package/php/array/natsort.js.map +1 -1
- package/php/array/next.js.map +1 -1
- package/php/array/pos.js.map +1 -1
- package/php/array/prev.js.map +1 -1
- package/php/array/range.js +3 -3
- package/php/array/range.js.map +1 -1
- package/php/array/reset.js.map +1 -1
- package/php/array/rsort.js +3 -3
- package/php/array/rsort.js.map +1 -1
- package/php/array/shuffle.js.map +1 -1
- package/php/array/sizeof.js.map +1 -1
- package/php/array/sort.js +3 -3
- package/php/array/sort.js.map +1 -1
- package/php/array/uasort.js.map +1 -1
- package/php/array/uksort.js.map +1 -1
- package/php/array/usort.js.map +1 -1
- package/php/bc/bcadd.js +3 -1
- package/php/bc/bcadd.js.map +1 -1
- package/php/bc/bccomp.js +2 -1
- package/php/bc/bccomp.js.map +1 -1
- package/php/bc/bcdiv.js +3 -1
- package/php/bc/bcdiv.js.map +1 -1
- package/php/bc/bcmul.js +3 -1
- package/php/bc/bcmul.js.map +1 -1
- package/php/bc/bcround.js +4 -2
- package/php/bc/bcround.js.map +1 -1
- package/php/bc/bcscale.js.map +1 -1
- package/php/bc/bcsub.js +3 -1
- package/php/bc/bcsub.js.map +1 -1
- package/php/bc/index.js +7 -7
- package/php/bc/index.js.map +1 -1
- package/php/ctype/ctype_alnum.js.map +1 -1
- package/php/ctype/ctype_alpha.js.map +1 -1
- package/php/ctype/ctype_cntrl.js.map +1 -1
- package/php/ctype/ctype_digit.js.map +1 -1
- package/php/ctype/ctype_graph.js.map +1 -1
- package/php/ctype/ctype_lower.js.map +1 -1
- package/php/ctype/ctype_print.js.map +1 -1
- package/php/ctype/ctype_punct.js.map +1 -1
- package/php/ctype/ctype_space.js.map +1 -1
- package/php/ctype/ctype_upper.js.map +1 -1
- package/php/ctype/ctype_xdigit.js.map +1 -1
- package/php/ctype/index.js +11 -11
- package/php/ctype/index.js.map +1 -1
- package/php/datetime/date.js +2 -1
- package/php/datetime/date.js.map +1 -1
- package/php/datetime/date_parse.js +1 -1
- package/php/datetime/date_parse.js.map +1 -1
- package/php/datetime/getdate.js.map +1 -1
- package/php/datetime/gettimeofday.js.map +1 -1
- package/php/datetime/gmdate.js.map +1 -1
- package/php/datetime/gmmktime.js.map +1 -1
- package/php/datetime/gmstrftime.js.map +1 -1
- package/php/datetime/idate.js +1 -1
- package/php/datetime/idate.js.map +1 -1
- package/php/datetime/index.js +15 -15
- package/php/datetime/index.js.map +1 -1
- package/php/datetime/microtime.js +3 -3
- package/php/datetime/microtime.js.map +1 -1
- package/php/datetime/mktime.js.map +1 -1
- package/php/datetime/strftime.js +2 -3
- package/php/datetime/strftime.js.map +1 -1
- package/php/datetime/strptime.js +20 -21
- package/php/datetime/strptime.js.map +1 -1
- package/php/datetime/strtotime.js +170 -4
- package/php/datetime/strtotime.js.map +1 -1
- package/php/exec/escapeshellarg.js +12 -4
- package/php/exec/escapeshellarg.js.map +1 -1
- package/php/exec/index.js +1 -1
- package/php/exec/index.js.map +1 -1
- package/php/filesystem/basename.js.map +1 -1
- package/php/filesystem/file_get_contents.js.map +1 -1
- package/php/filesystem/index.js +5 -5
- package/php/filesystem/index.js.map +1 -1
- package/php/filesystem/pathinfo.js +7 -8
- package/php/filesystem/pathinfo.js.map +1 -1
- package/php/filesystem/realpath.js.map +1 -1
- package/php/funchand/call_user_func.js.map +1 -1
- package/php/funchand/call_user_func_array.js +1 -1
- package/php/funchand/call_user_func_array.js.map +1 -1
- package/php/funchand/function_exists.js.map +1 -1
- package/php/funchand/get_defined_functions.js.map +1 -1
- package/php/funchand/index.js +5 -5
- package/php/funchand/index.js.map +1 -1
- package/php/i18n/i18n_loc_get_default.js.map +1 -1
- package/php/i18n/i18n_loc_set_default.js.map +1 -1
- package/php/i18n/index.js +2 -2
- package/php/i18n/index.js.map +1 -1
- package/php/index.js +19 -19
- package/php/index.js.map +1 -1
- package/php/info/assert_options.js +2 -1
- package/php/info/assert_options.js.map +1 -1
- package/php/info/index.js +6 -6
- package/php/info/index.js.map +1 -1
- package/php/info/ini_get.js.map +1 -1
- package/php/info/ini_set.js.map +1 -1
- package/php/info/set_time_limit.js.map +1 -1
- package/php/info/version_compare.js +21 -22
- package/php/info/version_compare.js.map +1 -1
- package/php/json/index.js +3 -3
- package/php/json/index.js.map +1 -1
- package/php/json/json_decode.js +1 -1
- package/php/json/json_decode.js.map +1 -1
- package/php/json/json_encode.js +1 -1
- package/php/json/json_encode.js.map +1 -1
- package/php/json/json_last_error.js.map +1 -1
- package/php/math/fmod.js +2 -2
- package/php/math/fmod.js.map +1 -1
- package/php/math/hypot.js.map +1 -1
- package/php/math/index.js +46 -46
- package/php/math/index.js.map +1 -1
- package/php/math/is_finite.js.map +1 -1
- package/php/math/is_infinite.js.map +1 -1
- package/php/math/is_nan.js.map +1 -1
- package/php/math/log1p.js.map +1 -1
- package/php/math/max.js +7 -7
- package/php/math/max.js.map +1 -1
- package/php/math/min.js +5 -5
- package/php/math/min.js.map +1 -1
- package/php/math/mt_rand.js.map +1 -1
- package/php/math/rand.js.map +1 -1
- package/php/math/round.js +1 -1
- package/php/math/round.js.map +1 -1
- package/php/misc/index.js +2 -2
- package/php/misc/index.js.map +1 -1
- package/php/misc/pack.js +23 -18
- package/php/misc/pack.js.map +1 -1
- package/php/misc/uniqid.js +1 -1
- package/php/misc/uniqid.js.map +1 -1
- package/php/net-gopher/gopher_parsedir.js +3 -4
- package/php/net-gopher/gopher_parsedir.js.map +1 -1
- package/php/net-gopher/index.js +1 -1
- package/php/net-gopher/index.js.map +1 -1
- package/php/network/index.js +6 -6
- package/php/network/index.js.map +1 -1
- package/php/network/inet_ntop.js.map +1 -1
- package/php/network/inet_pton.js +40 -32
- package/php/network/inet_pton.js.map +1 -1
- package/php/network/setcookie.js.map +1 -1
- package/php/network/setrawcookie.js.map +1 -1
- package/php/pcre/index.js +4 -3
- package/php/pcre/index.js.map +1 -1
- package/php/pcre/preg_replace.js +24 -0
- package/php/pcre/preg_replace.js.map +1 -0
- package/php/pcre/sql_regcase.js.map +1 -1
- package/php/strings/addcslashes.js.map +1 -1
- package/php/strings/bin2hex.js +3 -3
- package/php/strings/bin2hex.js.map +1 -1
- package/php/strings/chop.js.map +1 -1
- package/php/strings/convert_cyr_string.js +1 -1
- package/php/strings/convert_cyr_string.js.map +1 -1
- package/php/strings/convert_uuencode.js.map +1 -1
- package/php/strings/count_chars.js +1 -1
- package/php/strings/count_chars.js.map +1 -1
- package/php/strings/crc32.js.map +1 -1
- package/php/strings/echo.js.map +1 -1
- package/php/strings/explode.js.map +1 -1
- package/php/strings/get_html_translation_table.js +1 -1
- package/php/strings/get_html_translation_table.js.map +1 -1
- package/php/strings/hex2bin.js +1 -1
- package/php/strings/hex2bin.js.map +1 -1
- package/php/strings/html_entity_decode.js.map +1 -1
- package/php/strings/htmlentities.js.map +1 -1
- package/php/strings/htmlspecialchars.js +6 -6
- package/php/strings/htmlspecialchars.js.map +1 -1
- package/php/strings/htmlspecialchars_decode.js +6 -6
- package/php/strings/htmlspecialchars_decode.js.map +1 -1
- package/php/strings/implode.js.map +1 -1
- package/php/strings/index.js +91 -91
- package/php/strings/index.js.map +1 -1
- package/php/strings/join.js.map +1 -1
- package/php/strings/lcfirst.js.map +1 -1
- package/php/strings/levenshtein.js +6 -1
- package/php/strings/levenshtein.js.map +1 -1
- package/php/strings/localeconv.js.map +1 -1
- package/php/strings/ltrim.js.map +1 -1
- package/php/strings/md5.js +19 -15
- package/php/strings/md5.js.map +1 -1
- package/php/strings/md5_file.js.map +1 -1
- package/php/strings/metaphone.js +2 -2
- package/php/strings/metaphone.js.map +1 -1
- package/php/strings/money_format.js.map +1 -1
- package/php/strings/nl2br.js.map +1 -1
- package/php/strings/nl_langinfo.js.map +1 -1
- package/php/strings/number_format.js.map +1 -1
- package/php/strings/ord.js.map +1 -1
- package/php/strings/parse_str.js +13 -13
- package/php/strings/parse_str.js.map +1 -1
- package/php/strings/printf.js.map +1 -1
- package/php/strings/quoted_printable_decode.js.map +1 -1
- package/php/strings/quoted_printable_encode.js.map +1 -1
- package/php/strings/rtrim.js.map +1 -1
- package/php/strings/setlocale.js +18 -19
- package/php/strings/setlocale.js.map +1 -1
- package/php/strings/sha1.js +12 -7
- package/php/strings/sha1.js.map +1 -1
- package/php/strings/sha1_file.js.map +1 -1
- package/php/strings/similar_text.js +4 -4
- package/php/strings/similar_text.js.map +1 -1
- package/php/strings/soundex.js +3 -3
- package/php/strings/soundex.js.map +1 -1
- package/php/strings/split.js.map +1 -1
- package/php/strings/sprintf.js +7 -2
- package/php/strings/sprintf.js.map +1 -1
- package/php/strings/sscanf.js +2 -2
- package/php/strings/sscanf.js.map +1 -1
- package/php/strings/str_getcsv.js +2 -2
- package/php/strings/str_getcsv.js.map +1 -1
- package/php/strings/str_ireplace.js +6 -0
- package/php/strings/str_ireplace.js.map +1 -1
- package/php/strings/str_pad.js +1 -1
- package/php/strings/str_pad.js.map +1 -1
- package/php/strings/str_repeat.js.map +1 -1
- package/php/strings/str_replace.js +6 -0
- package/php/strings/str_replace.js.map +1 -1
- package/php/strings/str_shuffle.js +1 -1
- package/php/strings/str_shuffle.js.map +1 -1
- package/php/strings/str_split.js.map +1 -1
- package/php/strings/str_word_count.js.map +1 -1
- package/php/strings/strcasecmp.js.map +1 -1
- package/php/strings/strchr.js.map +1 -1
- package/php/strings/strcoll.js.map +1 -1
- package/php/strings/strip_tags.js.map +1 -1
- package/php/strings/stripos.js.map +1 -1
- package/php/strings/stristr.js.map +1 -1
- package/php/strings/strlen.js.map +1 -1
- package/php/strings/strnatcasecmp.js.map +1 -1
- package/php/strings/strnatcmp.js.map +1 -1
- package/php/strings/strncasecmp.js +1 -1
- package/php/strings/strncasecmp.js.map +1 -1
- package/php/strings/strncmp.js.map +1 -1
- package/php/strings/strpbrk.js.map +1 -1
- package/php/strings/strpos.js.map +1 -1
- package/php/strings/strrchr.js.map +1 -1
- package/php/strings/strrev.js.map +1 -1
- package/php/strings/strripos.js.map +1 -1
- package/php/strings/strrpos.js.map +1 -1
- package/php/strings/strspn.js +3 -3
- package/php/strings/strspn.js.map +1 -1
- package/php/strings/strstr.js.map +1 -1
- package/php/strings/strtok.js.map +1 -1
- package/php/strings/strtr.js.map +1 -1
- package/php/strings/substr.js.map +1 -1
- package/php/strings/substr_count.js.map +1 -1
- package/php/strings/trim.js.map +1 -1
- package/php/strings/ucfirst.js.map +1 -1
- package/php/strings/vprintf.js.map +1 -1
- package/php/strings/vsprintf.js.map +1 -1
- package/php/strings/wordwrap.js +4 -2
- package/php/strings/wordwrap.js.map +1 -1
- package/php/url/base64_decode.js +8 -8
- package/php/url/base64_decode.js.map +1 -1
- package/php/url/base64_encode.js +8 -8
- package/php/url/base64_encode.js.map +1 -1
- package/php/url/http_build_query.js +4 -4
- package/php/url/http_build_query.js.map +1 -1
- package/php/url/index.js +8 -8
- package/php/url/index.js.map +1 -1
- package/php/url/parse_url.js +1 -1
- package/php/url/parse_url.js.map +1 -1
- package/php/var/doubleval.js.map +1 -1
- package/php/var/empty.js +4 -4
- package/php/var/empty.js.map +1 -1
- package/php/var/gettype.js +1 -1
- package/php/var/gettype.js.map +1 -1
- package/php/var/index.js +30 -30
- package/php/var/index.js.map +1 -1
- package/php/var/intval.js +2 -1
- package/php/var/intval.js.map +1 -1
- package/php/var/is_array.js.map +1 -1
- package/php/var/is_callable.js.map +1 -1
- package/php/var/is_double.js.map +1 -1
- package/php/var/is_integer.js.map +1 -1
- package/php/var/is_long.js.map +1 -1
- package/php/var/is_numeric.js.map +1 -1
- package/php/var/is_real.js.map +1 -1
- package/php/var/is_unicode.js.map +1 -1
- package/php/var/isset.js +1 -1
- package/php/var/isset.js.map +1 -1
- package/php/var/print_r.js.map +1 -1
- package/php/var/serialize.js +7 -5
- package/php/var/serialize.js.map +1 -1
- package/php/var/strval.js.map +1 -1
- package/php/var/unserialize.js +422 -236
- package/php/var/unserialize.js.map +1 -1
- package/php/var/var_dump.js +3 -3
- package/php/var/var_dump.js.map +1 -1
- package/php/var/var_export.js +5 -5
- package/php/var/var_export.js.map +1 -1
- package/php/xdiff/index.js +2 -2
- package/php/xdiff/index.js.map +1 -1
- package/php/xdiff/xdiff_string_diff.js +30 -30
- package/php/xdiff/xdiff_string_diff.js.map +1 -1
- package/php/xdiff/xdiff_string_patch.js +7 -8
- package/php/xdiff/xdiff_string_patch.js.map +1 -1
- package/php/xml/index.js +2 -2
- package/php/xml/index.js.map +1 -1
- package/php/xml/utf8_decode.js.map +1 -1
- package/php/xml/utf8_encode.js +2 -2
- package/php/xml/utf8_encode.js.map +1 -1
- package/python/index.js +1 -1
- package/python/index.js.map +1 -1
- package/python/string/capwords.js.map +1 -1
- package/python/string/index.js +4 -4
- package/python/string/index.js.map +1 -1
- package/python/string/punctuation.js +10 -0
- package/python/string/punctuation.js.map +1 -0
- package/ruby/Math/index.js +1 -1
- package/ruby/Math/index.js.map +1 -1
- package/ruby/index.js +1 -1
- 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 :
|
|
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
|
-
|
|
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()
|
|
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
|
|