date-and-time 3.0.3 → 3.1.0

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/README.md CHANGED
@@ -6,7 +6,7 @@ This JS library is just a collection of functions for manipulating date and time
6
6
 
7
7
  ## Why
8
8
 
9
- Nowadays, JS modules have become huge, complex, and have many dependencies. We think it makes sense to try to keep each module simple and small. Especially for modules that are at the bottom of the dependency chain, such as those dealing with date and time.
9
+ Nowadays, JS modules have become larger, more complex, and dependent on many other modules. It is important to strive for simplicity and smallness, especially for modules that are at the bottom of the dependency chain, such as those that handle date and time.
10
10
 
11
11
  ## Features
12
12
 
@@ -25,16 +25,16 @@ npm i date-and-time
25
25
 
26
26
  ## Recent Changes
27
27
 
28
+ - 3.1.0
29
+ - Improved accuracy of `parseTZ()` in `timezone` plugin.
30
+ - Organized some test modules.
31
+
28
32
  - 3.0.3
29
33
  - Fixed TypeScript types exports in `package.json`.
30
34
 
31
35
  - 3.0.2
32
36
  - Dropped the use of the logical OR assignment operator to support older environments.
33
37
 
34
- - 3.0.1
35
- - Fixed calculation of last day of month in `addYears()` and `addMonths()`.
36
- - Fixed lint errors.
37
-
38
38
  ## Usage
39
39
 
40
40
  - ES Modules:
@@ -9,6 +9,452 @@ var plugin = function (date, localized_date) {
9
9
  hour: 'numeric', minute: 'numeric', second: 'numeric'
10
10
  };
11
11
  var pattern = date.compile('M/D/Y, h:mm:ss A');
12
+ var timeZones = {
13
+ africa: {
14
+ abidjan: [0, -968],
15
+ accra: [0, -968],
16
+ addis_ababa: [10800, 9900, 9000, 8836],
17
+ algiers: [7200, 3600, 732, 561, 0],
18
+ asmara: [10800, 9900, 9000, 8836],
19
+ bamako: [0, -968],
20
+ bangui: [3600, 1800, 815, 0],
21
+ banjul: [0, -968],
22
+ bissau: [0, -3600, -3740],
23
+ blantyre: [7820, 7200],
24
+ brazzaville: [3600, 1800, 815, 0],
25
+ bujumbura: [7820, 7200],
26
+ cairo: [10800, 7509, 7200],
27
+ casablanca: [3600, 0, -1820],
28
+ ceuta: [7200, 3600, 0, -1276],
29
+ conakry: [0, -968],
30
+ dakar: [0, -968],
31
+ dar_es_salaam: [10800, 9900, 9000, 8836],
32
+ djibouti: [10800, 9900, 9000, 8836],
33
+ douala: [3600, 1800, 815, 0],
34
+ el_aaiun: [3600, 0, -3168, -3600],
35
+ freetown: [0, -968],
36
+ gaborone: [7820, 7200],
37
+ harare: [7820, 7200],
38
+ johannesburg: [10800, 7200, 6720, 5400],
39
+ juba: [10800, 7588, 7200],
40
+ kampala: [10800, 9900, 9000, 8836],
41
+ khartoum: [10800, 7808, 7200],
42
+ kigali: [7820, 7200],
43
+ kinshasa: [3600, 1800, 815, 0],
44
+ lagos: [3600, 1800, 815, 0],
45
+ libreville: [3600, 1800, 815, 0],
46
+ lome: [0, -968],
47
+ luanda: [3600, 1800, 815, 0],
48
+ lubumbashi: [7820, 7200],
49
+ lusaka: [7820, 7200],
50
+ malabo: [3600, 1800, 815, 0],
51
+ maputo: [7820, 7200],
52
+ maseru: [10800, 7200, 6720, 5400],
53
+ mbabane: [10800, 7200, 6720, 5400],
54
+ mogadishu: [10800, 9900, 9000, 8836],
55
+ monrovia: [0, -2588, -2670],
56
+ nairobi: [10800, 9900, 9000, 8836],
57
+ ndjamena: [7200, 3612, 3600],
58
+ niamey: [3600, 1800, 815, 0],
59
+ nouakchott: [0, -968],
60
+ ouagadougou: [0, -968],
61
+ 'porto-novo': [3600, 1800, 815, 0],
62
+ sao_tome: [3600, 1616, 0, -2205],
63
+ tripoli: [7200, 3600, 3164],
64
+ tunis: [7200, 3600, 2444, 561],
65
+ windhoek: [10800, 7200, 5400, 4104, 3600]
66
+ },
67
+ america: {
68
+ adak: [44002, -32400, -36000, -39600, -42398],
69
+ anchorage: [50424, -28800, -32400, -35976, -36000],
70
+ anguilla: [-10800, -14400, -15865],
71
+ antigua: [-10800, -14400, -15865],
72
+ araguaina: [-7200, -10800, -11568],
73
+ argentina: {
74
+ buenos_aires: [-7200, -10800, -14028, -14400, -15408],
75
+ catamarca: [-7200, -10800, -14400, -15408, -15788],
76
+ cordoba: [-7200, -10800, -14400, -15408],
77
+ jujuy: [-7200, -10800, -14400, -15408, -15672],
78
+ la_rioja: [-7200, -10800, -14400, -15408, -16044],
79
+ mendoza: [-7200, -10800, -14400, -15408, -16516],
80
+ rio_gallegos: [-7200, -10800, -14400, -15408, -16612],
81
+ salta: [-7200, -10800, -14400, -15408, -15700],
82
+ san_juan: [-7200, -10800, -14400, -15408, -16444],
83
+ san_luis: [-7200, -10800, -14400, -15408, -15924],
84
+ tucuman: [-7200, -10800, -14400, -15408, -15652],
85
+ ushuaia: [-7200, -10800, -14400, -15408, -16392]
86
+ },
87
+ aruba: [-10800, -14400, -15865],
88
+ asuncion: [-10800, -13840, -14400],
89
+ atikokan: [-18000, -19088, -19176],
90
+ bahia_banderas: [-18000, -21600, -25200, -25260, -28800],
91
+ bahia: [-7200, -9244, -10800],
92
+ barbados: [-10800, -12600, -14309, -14400],
93
+ belem: [-7200, -10800, -11636],
94
+ belize: [-18000, -19800, -21168, -21600],
95
+ 'blanc-sablon': [-10800, -14400, -15865],
96
+ boa_vista: [-10800, -14400, -14560],
97
+ bogota: [-14400, -17776, -18000],
98
+ boise: [-21600, -25200, -27889, -28800],
99
+ cambridge_bay: [0, -18000, -21600, -25200],
100
+ campo_grande: [-10800, -13108, -14400],
101
+ cancun: [-14400, -18000, -20824, -21600],
102
+ caracas: [-14400, -16060, -16064, -16200],
103
+ cayenne: [-10800, -12560, -14400],
104
+ cayman: [-18000, -19088, -19176],
105
+ chicago: [-18000, -21036, -21600],
106
+ chihuahua: [-18000, -21600, -25200, -25460],
107
+ ciudad_juarez: [-18000, -21600, -25200, -25556],
108
+ costa_rica: [-18000, -20173, -21600],
109
+ creston: [-21600, -25200, -26898],
110
+ cuiaba: [-10800, -13460, -14400],
111
+ curacao: [-10800, -14400, -15865],
112
+ danmarkshavn: [0, -4480, -7200, -10800],
113
+ dawson: [-25200, -28800, -32400, -33460],
114
+ dawson_creek: [-25200, -28800, -28856],
115
+ denver: [-21600, -25196, -25200],
116
+ detroit: [-14400, -18000, -19931, -21600],
117
+ dominica: [-10800, -14400, -15865],
118
+ edmonton: [-21600, -25200, -27232],
119
+ eirunepe: [-14400, -16768, -18000],
120
+ el_salvador: [-18000, -21408, -21600],
121
+ fortaleza: [-7200, -9240, -10800],
122
+ fort_nelson: [-25200, -28800, -29447],
123
+ glace_bay: [-10800, -14388, -14400],
124
+ goose_bay: [-7200, -9000, -9052, -10800, -12600, -12652, -14400, -14500],
125
+ grand_turk: [-14400, -17072, -18000, -18430],
126
+ grenada: [-10800, -14400, -15865],
127
+ guadeloupe: [-10800, -14400, -15865],
128
+ guatemala: [-18000, -21600, -21724],
129
+ guayaquil: [-14400, -18000, -18840, -19160],
130
+ guyana: [-10800, -13500, -13959, -14400],
131
+ halifax: [-10800, -14400, -15264],
132
+ havana: [-14400, -18000, -19768, -19776],
133
+ hermosillo: [-21600, -25200, -26632, -28800],
134
+ indiana: {
135
+ indianapolis: [-14400, -18000, -20678, -21600],
136
+ knox: [-18000, -20790, -21600],
137
+ marengo: [-14400, -18000, -20723, -21600],
138
+ petersburg: [-14400, -18000, -20947, -21600],
139
+ tell_city: [-14400, -18000, -20823, -21600],
140
+ vevay: [-14400, -18000, -20416, -21600],
141
+ vincennes: [-14400, -18000, -21007, -21600],
142
+ winamac: [-14400, -18000, -20785, -21600]
143
+ },
144
+ inuvik: [0, -21600, -25200, -28800],
145
+ iqaluit: [0, -14400, -18000, -21600],
146
+ jamaica: [-14400, -18000, -18430],
147
+ juneau: [54139, -25200, -28800, -32261, -32400],
148
+ kentucky: {
149
+ louisville: [-14400, -18000, -20582, -21600],
150
+ monticello: [-14400, -18000, -20364, -21600]
151
+ },
152
+ kralendijk: [-10800, -14400, -15865],
153
+ la_paz: [-12756, -14400, -16356],
154
+ lima: [-14400, -18000, -18492, -18516],
155
+ los_angeles: [-25200, -28378, -28800],
156
+ lower_princes: [-10800, -14400, -15865],
157
+ maceio: [-7200, -8572, -10800],
158
+ managua: [-18000, -20708, -20712, -21600],
159
+ manaus: [-10800, -14400, -14404],
160
+ marigot: [-10800, -14400, -15865],
161
+ martinique: [-10800, -14400, -14660],
162
+ matamoros: [-18000, -21600, -23400],
163
+ mazatlan: [-21600, -25200, -25540, -28800],
164
+ menominee: [-18000, -21027, -21600],
165
+ merida: [-18000, -21508, -21600],
166
+ metlakatla: [54822, -25200, -28800, -31578, -32400],
167
+ mexico_city: [-18000, -21600, -23796, -25200],
168
+ miquelon: [-7200, -10800, -13480, -14400],
169
+ moncton: [-10800, -14400, -15548, -18000],
170
+ monterrey: [-18000, -21600, -24076],
171
+ montevideo: [-5400, -7200, -9000, -10800, -12600, -13491, -14400],
172
+ montserrat: [-10800, -14400, -15865],
173
+ nassau: [-14400, -18000, -19052],
174
+ new_york: [-14400, -17762, -18000],
175
+ nome: [46702, -28800, -32400, -36000, -39600, -39698],
176
+ noronha: [-3600, -7200, -7780],
177
+ north_dakota: {
178
+ beulah: [-18000, -21600, -24427, -25200],
179
+ center: [-18000, -21600, -24312, -25200],
180
+ new_salem: [-18000, -21600, -24339, -25200]
181
+ },
182
+ nuuk: [-3600, -7200, -10800, -12416],
183
+ ojinaga: [-18000, -21600, -25060, -25200],
184
+ panama: [-18000, -19088, -19176],
185
+ paramaribo: [-10800, -12600, -13236, -13240, -13252],
186
+ phoenix: [-21600, -25200, -26898],
187
+ 'port-au-prince': [-14400, -17340, -17360, -18000],
188
+ port_of_spain: [-10800, -14400, -15865],
189
+ porto_velho: [-10800, -14400, -15336],
190
+ puerto_rico: [-10800, -14400, -15865],
191
+ punta_arenas: [-10800, -14400, -16965, -17020, -18000],
192
+ rankin_inlet: [0, -18000, -21600],
193
+ recife: [-7200, -8376, -10800],
194
+ regina: [-21600, -25116, -25200],
195
+ resolute: [0, -18000, -21600],
196
+ rio_branco: [-14400, -16272, -18000],
197
+ santarem: [-10800, -13128, -14400],
198
+ santiago: [-10800, -14400, -16965, -18000],
199
+ santo_domingo: [-14400, -16200, -16776, -16800, -18000],
200
+ sao_paulo: [-7200, -10800, -11188],
201
+ scoresbysund: [0, -3600, -5272, -7200],
202
+ sitka: [53927, -25200, -28800, -32400, -32473],
203
+ st_barthelemy: [-10800, -14400, -15865],
204
+ st_johns: [-5400, -9000, -9052, -12600, -12652],
205
+ st_kitts: [-10800, -14400, -15865],
206
+ st_lucia: [-10800, -14400, -15865],
207
+ st_thomas: [-10800, -14400, -15865],
208
+ st_vincent: [-10800, -14400, -15865],
209
+ swift_current: [-21600, -25200, -25880],
210
+ tegucigalpa: [-18000, -20932, -21600],
211
+ thule: [-10800, -14400, -16508],
212
+ tijuana: [-25200, -28084, -28800],
213
+ toronto: [-14400, -18000, -19052],
214
+ tortola: [-10800, -14400, -15865],
215
+ vancouver: [-25200, -28800, -29548],
216
+ whitehorse: [-25200, -28800, -32400, -32412],
217
+ winnipeg: [-18000, -21600, -23316],
218
+ yakutat: [52865, -28800, -32400, -33535]
219
+ },
220
+ antarctica: {
221
+ casey: [39600, 28800, 0],
222
+ davis: [25200, 18000, 0],
223
+ dumontdurville: [36000, 35320, 35312],
224
+ macquarie: [39600, 36000, 0],
225
+ mawson: [21600, 18000, 0],
226
+ mcmurdo: [46800, 45000, 43200, 41944, 41400],
227
+ palmer: [0, -7200, -10800, -14400],
228
+ rothera: [0, -10800],
229
+ syowa: [11212, 10800],
230
+ troll: [7200, 0],
231
+ vostok: [25200, 18000, 0]
232
+ },
233
+ arctic: { longyearbyen: [10800, 7200, 3600, 3208] },
234
+ asia: {
235
+ aden: [11212, 10800],
236
+ almaty: [25200, 21600, 18468, 18000],
237
+ amman: [10800, 8624, 7200],
238
+ anadyr: [50400, 46800, 43200, 42596, 39600],
239
+ aqtau: [21600, 18000, 14400, 12064],
240
+ aqtobe: [21600, 18000, 14400, 13720],
241
+ ashgabat: [21600, 18000, 14400, 14012],
242
+ atyrau: [21600, 18000, 14400, 12464, 10800],
243
+ baghdad: [14400, 10800, 10660, 10656],
244
+ bahrain: [14400, 12368, 10800],
245
+ baku: [18000, 14400, 11964, 10800],
246
+ bangkok: [25200, 24124],
247
+ barnaul: [28800, 25200, 21600, 20100],
248
+ beirut: [10800, 8520, 7200],
249
+ bishkek: [25200, 21600, 18000, 17904],
250
+ brunei: [32400, 30000, 28800, 27000, 26480],
251
+ chita: [36000, 32400, 28800, 27232],
252
+ choibalsan: [36000, 32400, 28800, 27480, 25200],
253
+ colombo: [23400, 21600, 19800, 19172, 19164],
254
+ damascus: [10800, 8712, 7200],
255
+ dhaka: [25200, 23400, 21700, 21600, 21200, 19800],
256
+ dili: [32400, 30140, 28800],
257
+ dubai: [14400, 13272],
258
+ dushanbe: [25200, 21600, 18000, 16512],
259
+ famagusta: [10800, 8148, 7200],
260
+ gaza: [10800, 8272, 7200],
261
+ hebron: [10800, 8423, 7200],
262
+ ho_chi_minh: [32400, 28800, 25590, 25200],
263
+ hong_kong: [32400, 30600, 28800, 27402],
264
+ hovd: [28800, 25200, 21996, 21600],
265
+ irkutsk: [32400, 28800, 25200, 25025],
266
+ jakarta: [32400, 28800, 27000, 26400, 25632, 25200],
267
+ jayapura: [34200, 33768, 32400],
268
+ jerusalem: [14400, 10800, 8454, 8440, 7200],
269
+ kabul: [16608, 16200, 14400],
270
+ kamchatka: [46800, 43200, 39600, 38076],
271
+ karachi: [23400, 21600, 19800, 18000, 16092],
272
+ kathmandu: [20700, 20476, 19800],
273
+ khandyga: [39600, 36000, 32533, 32400, 28800],
274
+ kolkata: [23400, 21208, 21200, 19800, 19270],
275
+ krasnoyarsk: [28800, 25200, 22286, 21600],
276
+ kuala_lumpur: [32400, 28800, 27000, 26400, 25200, 24925],
277
+ kuching: [32400, 30000, 28800, 27000, 26480],
278
+ kuwait: [11212, 10800],
279
+ macau: [36000, 32400, 28800, 27250],
280
+ magadan: [43200, 39600, 36192, 36000],
281
+ makassar: [32400, 28800, 28656],
282
+ manila: [32400, 29040, 28800, -57360],
283
+ muscat: [14400, 13272],
284
+ nicosia: [10800, 8008, 7200],
285
+ novokuznetsk: [28800, 25200, 21600, 20928],
286
+ novosibirsk: [28800, 25200, 21600, 19900],
287
+ omsk: [25200, 21600, 18000, 17610],
288
+ oral: [21600, 18000, 14400, 12324, 10800],
289
+ phnom_penh: [25200, 24124],
290
+ pontianak: [32400, 28800, 27000, 26240, 25200],
291
+ pyongyang: [32400, 30600, 30180],
292
+ qatar: [14400, 12368, 10800],
293
+ qostanay: [21600, 18000, 15268, 14400],
294
+ qyzylorda: [21600, 18000, 15712, 14400],
295
+ riyadh: [11212, 10800],
296
+ sakhalin: [43200, 39600, 36000, 34248, 32400],
297
+ samarkand: [21600, 18000, 16073, 14400],
298
+ seoul: [36000, 34200, 32400, 30600, 30472],
299
+ shanghai: [32400, 29143, 28800],
300
+ singapore: [32400, 28800, 27000, 26400, 25200, 24925],
301
+ srednekolymsk: [43200, 39600, 36892, 36000],
302
+ taipei: [32400, 29160, 28800],
303
+ tashkent: [25200, 21600, 18000, 16631],
304
+ tbilisi: [18000, 14400, 10800, 10751],
305
+ tehran: [18000, 16200, 14400, 12600, 12344],
306
+ thimphu: [21600, 21516, 19800],
307
+ tokyo: [36000, 33539, 32400],
308
+ tomsk: [28800, 25200, 21600, 20391],
309
+ ulaanbaatar: [32400, 28800, 25652, 25200],
310
+ urumqi: [21600, 21020],
311
+ 'ust-nera': [43200, 39600, 36000, 34374, 32400, 28800],
312
+ vientiane: [25200, 24124],
313
+ vladivostok: [39600, 36000, 32400, 31651],
314
+ yakutsk: [36000, 32400, 31138, 28800],
315
+ yangon: [32400, 23400, 23087],
316
+ yekaterinburg: [21600, 18000, 14553, 14400, 13505],
317
+ yerevan: [18000, 14400, 10800, 10680]
318
+ },
319
+ atlantic: {
320
+ azores: [0, -3600, -6160, -6872, -7200],
321
+ bermuda: [-10800, -11958, -14400, -15558],
322
+ canary: [3600, 0, -3600, -3696],
323
+ cape_verde: [-3600, -5644, -7200],
324
+ faroe: [3600, 0, -1624],
325
+ madeira: [3600, 0, -3600, -4056],
326
+ reykjavik: [0, -968],
327
+ south_georgia: [-7200, -8768],
328
+ stanley: [-7200, -10800, -13884, -14400],
329
+ st_helena: [0, -968]
330
+ },
331
+ australia: {
332
+ adelaide: [37800, 34200, 33260, 32400],
333
+ brisbane: [39600, 36728, 36000],
334
+ broken_hill: [37800, 36000, 34200, 33948, 32400],
335
+ darwin: [37800, 34200, 32400, 31400],
336
+ eucla: [35100, 31500, 30928],
337
+ hobart: [39600, 36000, 35356],
338
+ lindeman: [39600, 36000, 35756],
339
+ lord_howe: [41400, 39600, 38180, 37800, 36000],
340
+ melbourne: [39600, 36000, 34792],
341
+ perth: [32400, 28800, 27804],
342
+ sydney: [39600, 36292, 36000]
343
+ },
344
+ europe: {
345
+ amsterdam: [7200, 3600, 1050, 0],
346
+ andorra: [7200, 3600, 364, 0],
347
+ astrakhan: [18000, 14400, 11532, 10800],
348
+ athens: [10800, 7200, 5692, 3600],
349
+ belgrade: [7200, 4920, 3600],
350
+ berlin: [10800, 7200, 3600, 3208],
351
+ bratislava: [7200, 3600, 3464, 0],
352
+ brussels: [7200, 3600, 1050, 0],
353
+ bucharest: [10800, 7200, 6264],
354
+ budapest: [7200, 4580, 3600],
355
+ busingen: [7200, 3600, 2048, 1786],
356
+ chisinau: [14400, 10800, 7200, 6920, 6900, 6264, 3600],
357
+ copenhagen: [10800, 7200, 3600, 3208],
358
+ dublin: [3600, 2079, 0, -1521],
359
+ gibraltar: [7200, 3600, 0, -1284],
360
+ guernsey: [7200, 3600, 0, -75],
361
+ helsinki: [10800, 7200, 5989],
362
+ isle_of_man: [7200, 3600, 0, -75],
363
+ istanbul: [14400, 10800, 7200, 7016, 6952],
364
+ jersey: [7200, 3600, 0, -75],
365
+ kaliningrad: [14400, 10800, 7200, 4920, 3600],
366
+ kirov: [18000, 14400, 11928, 10800],
367
+ kyiv: [14400, 10800, 7324, 7200, 3600],
368
+ lisbon: [7200, 3600, 0, -2205],
369
+ ljubljana: [7200, 4920, 3600],
370
+ london: [7200, 3600, 0, -75],
371
+ luxembourg: [7200, 3600, 1050, 0],
372
+ madrid: [7200, 3600, 0, -884],
373
+ malta: [7200, 3600, 3484],
374
+ mariehamn: [10800, 7200, 5989],
375
+ minsk: [14400, 10800, 7200, 6616, 6600, 3600],
376
+ monaco: [7200, 3600, 561, 0],
377
+ moscow: [18000, 16279, 14400, 12679, 10800, 9079, 9017, 7200],
378
+ oslo: [10800, 7200, 3600, 3208],
379
+ paris: [7200, 3600, 561, 0],
380
+ podgorica: [7200, 4920, 3600],
381
+ prague: [7200, 3600, 3464, 0],
382
+ riga: [14400, 10800, 9394, 7200, 5794, 3600],
383
+ rome: [7200, 3600, 2996],
384
+ samara: [18000, 14400, 12020, 10800],
385
+ san_marino: [7200, 3600, 2996],
386
+ sarajevo: [7200, 4920, 3600],
387
+ saratov: [18000, 14400, 11058, 10800],
388
+ simferopol: [14400, 10800, 8184, 8160, 7200, 3600],
389
+ skopje: [7200, 4920, 3600],
390
+ sofia: [10800, 7200, 7016, 5596, 3600],
391
+ stockholm: [10800, 7200, 3600, 3208],
392
+ tallinn: [14400, 10800, 7200, 5940, 3600],
393
+ tirane: [7200, 4760, 3600],
394
+ ulyanovsk: [18000, 14400, 11616, 10800, 7200],
395
+ vaduz: [7200, 3600, 2048, 1786],
396
+ vatican: [7200, 3600, 2996],
397
+ vienna: [7200, 3921, 3600],
398
+ vilnius: [14400, 10800, 7200, 6076, 5736, 5040, 3600],
399
+ volgograd: [18000, 14400, 10800, 10660],
400
+ warsaw: [10800, 7200, 5040, 3600],
401
+ zagreb: [7200, 4920, 3600],
402
+ zurich: [7200, 3600, 2048, 1786]
403
+ },
404
+ indian: {
405
+ antananarivo: [10800, 9900, 9000, 8836],
406
+ chagos: [21600, 18000, 17380],
407
+ christmas: [25200, 24124],
408
+ cocos: [32400, 23400, 23087],
409
+ comoro: [10800, 9900, 9000, 8836],
410
+ kerguelen: [18000, 17640],
411
+ mahe: [14400, 13272],
412
+ maldives: [18000, 17640],
413
+ mauritius: [18000, 14400, 13800],
414
+ mayotte: [10800, 9900, 9000, 8836],
415
+ reunion: [14400, 13272]
416
+ },
417
+ pacific: {
418
+ apia: [50400, 46800, 45184, -36000, -39600, -41216, -41400],
419
+ auckland: [46800, 45000, 43200, 41944, 41400],
420
+ bougainville: [39600, 37336, 36000, 35312, 32400],
421
+ chatham: [49500, 45900, 44100, 44028],
422
+ chuuk: [36000, 35320, 35312],
423
+ easter: [-18000, -21600, -25200, -26248],
424
+ efate: [43200, 40396, 39600],
425
+ fakaofo: [46800, -39600, -41096],
426
+ fiji: [46800, 43200, 42944],
427
+ funafuti: [43200, 41524],
428
+ galapagos: [-18000, -21504, -21600],
429
+ gambier: [-32388, -32400],
430
+ guadalcanal: [39600, 38388],
431
+ guam: [39600, 36000, 34740, 32400, -51660],
432
+ honolulu: [-34200, -36000, -37800, -37886],
433
+ kanton: [46800, 0, -39600, -43200],
434
+ kiritimati: [50400, -36000, -37760, -38400],
435
+ kosrae: [43200, 39600, 39116, 36000, 32400, -47284],
436
+ kwajalein: [43200, 40160, 39600, 36000, 32400, -43200],
437
+ majuro: [43200, 41524],
438
+ marquesas: [-33480, -34200],
439
+ midway: [45432, -39600, -40968],
440
+ nauru: [43200, 41400, 40060, 32400],
441
+ niue: [-39600, -40780, -40800],
442
+ norfolk: [45000, 43200, 41400, 40320, 40312, 39600],
443
+ noumea: [43200, 39948, 39600],
444
+ pago_pago: [45432, -39600, -40968],
445
+ palau: [32400, 32276, -54124],
446
+ pitcairn: [-28800, -30600, -31220],
447
+ pohnpei: [39600, 38388],
448
+ port_moresby: [36000, 35320, 35312],
449
+ rarotonga: [48056, -34200, -36000, -37800, -38344],
450
+ saipan: [39600, 36000, 34740, 32400, -51660],
451
+ tahiti: [-35896, -36000],
452
+ tarawa: [43200, 41524],
453
+ tongatapu: [50400, 46800, 44400, 44352],
454
+ wake: [43200, 41524],
455
+ wallis: [43200, 41524]
456
+ }
457
+ };
12
458
  var formatTZ = function (dateObj, arg, timeZone) {
13
459
  options.timeZone = 'UTC';
14
460
  var utcObj = date.parse(new Intl.DateTimeFormat('en-US', options).format(dateObj), pattern);
@@ -21,37 +467,34 @@ var plugin = function (date, localized_date) {
21
467
  dateObj3.getTimezoneOffset = function () { return (utcObj.getTime() - dateObj2.getTime()) / 60000 | 0; };
22
468
  return localized_date.format(dateObj3, arg);
23
469
  };
24
- var adjustments = [
25
- -60, -30, -20,
26
- 0,
27
- 60, 30, 20
28
- ];
29
470
  var parseTZ = function (dateString, arg, timeZone) {
30
471
  var pattern2 = typeof arg === 'string' ? date.compile(arg) : arg;
31
- var dateObj = localized_date.parse(dateString, pattern2, true);
472
+ var dateObj = localized_date.parse(dateString, pattern2, !!timeZone);
32
473
 
33
- if (~date._parser.find(pattern2, 'ZZ').value) {
474
+ if (!timeZone || ~date._parser.find(pattern2, 'ZZ').value || timeZone.toLowerCase() === 'utc') {
34
475
  return dateObj;
35
476
  }
36
477
 
37
478
  options.timeZone = timeZone;
38
479
  var dateTimeFormat = new Intl.DateTimeFormat('en-US', options);
39
- var dateObj2 = date.addMilliseconds(
40
- date.parse(dateTimeFormat.format(dateObj), pattern, true),
41
- dateObj.getMilliseconds()
42
- );
43
- var offset = dateObj.getTime() - dateObj2.getTime();
44
- var dateString2 = date.format(localized_date.parse(dateString, pattern2), pattern);
480
+ var dateString2 = date.format(dateObj, pattern, true);
481
+ var offset = (function () {
482
+ var keys = timeZone.toLowerCase().split('/');
483
+ var value = timeZones[keys[0]] || {};
45
484
 
485
+ for (var i = 1, len = keys.length; i < len; i++) {
486
+ value = value[keys[i]] || {};
487
+ }
488
+ return Array.isArray(value) ? value : [];
489
+ })();
46
490
  var comparer = function (d) {
47
491
  return dateString2 === dateTimeFormat.format(d).replace(/[\u202f]/, ' ');
48
492
  };
49
493
 
50
- // Trying to adjust for daylight saving time.
51
- for (var j = 0, len2 = adjustments.length; j < len2; j++) {
52
- var d = date.addMilliseconds(dateObj, offset + adjustments[j] * 60000);
494
+ for (var j = 0, len2 = offset.length; j < len2; j++) {
495
+ var d = dateObj.getTime() - offset[j] * 1000;
53
496
  if (comparer(d)) {
54
- return d;
497
+ return new Date(d);
55
498
  }
56
499
  }
57
500
  return new Date(NaN);