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/tests/test.mjs DELETED
@@ -1,1908 +0,0 @@
1
- /*global describe, it */
2
-
3
- import expect from 'expect.js';
4
- import date from 'date-and-time';
5
-
6
- describe('format', () => {
7
- it('"YYYY" equals to "0001"', function () {
8
- var now = new Date(0, -1899 * 12, 1);
9
- expect(date.format(now, 'YYYY')).to.equal('0001');
10
- });
11
- it('"YYYY" equals to "0099"', function () {
12
- var now = new Date(0, -1801 * 12, 1);
13
- expect(date.format(now, 'YYYY')).to.equal('0099');
14
- });
15
- it('"YYYY" equals to "0100"', function () {
16
- var now = new Date(100, 0, 1);
17
- expect(date.format(now, 'YYYY')).to.equal('0100');
18
- });
19
- it('"YYYY" equals to "1800"', function () {
20
- var now = new Date(1800, 0, 1);
21
- expect(date.format(now, 'YYYY')).to.equal('1800');
22
- });
23
- it('"YYYY" equals to "1899"', function () {
24
- var now = new Date(1899, 0, 1);
25
- expect(date.format(now, 'YYYY')).to.equal('1899');
26
- });
27
- it('"YYYY" equals to "1900"', function () {
28
- var now = new Date(1900, 0, 1);
29
- expect(date.format(now, 'YYYY')).to.equal('1900');
30
- });
31
- it('"YYYY" equals to "1901"', function () {
32
- var now = new Date(1901, 0, 1);
33
- expect(date.format(now, 'YYYY')).to.equal('1901');
34
- });
35
- it('"YYYY" equals to "1970"', function () {
36
- var now = new Date(1970, 0, 1);
37
- expect(date.format(now, 'YYYY')).to.equal('1970');
38
- });
39
- it('"YYYY" equals to "1999"', function () {
40
- var now = new Date(1999, 0, 1);
41
- expect(date.format(now, 'YYYY')).to.equal('1999');
42
- });
43
- it('"YYYY" equals to "2000"', function () {
44
- var now = new Date(2000, 0, 1);
45
- expect(date.format(now, 'YYYY')).to.equal('2000');
46
- });
47
- it('"YYYY" equals to "2001"', function () {
48
- var now = new Date(2001, 0, 1);
49
- expect(date.format(now, 'YYYY')).to.equal('2001');
50
- });
51
- it('"YYYY" equals to "9999"', function () {
52
- var now = new Date(9999, 0, 1);
53
- expect(date.format(now, 'YYYY')).to.equal('9999');
54
- });
55
- it('"YYYY" as UTC equals to "XXXX"', function () {
56
- var now = new Date(2015, 0, 1, 12, 34, 56, 789),
57
- utc = true;
58
- expect(date.format(now, 'YYYY', utc)).to.equal('' + now.getUTCFullYear());
59
- });
60
- it('"YY" equals to "00"', function () {
61
- var now = new Date(0, 0, 1);
62
- expect(date.format(now, 'YY')).to.equal('00');
63
- });
64
- it('"YY" equals to "01"', function () {
65
- var now = new Date(0, -1899 * 12, 1);
66
- expect(date.format(now, 'YY')).to.equal('01');
67
- });
68
- it('"YY" equals to "99"', function () {
69
- var now = new Date(0, -1801 * 12, 1);
70
- expect(date.format(now, 'YY')).to.equal('99');
71
- });
72
- it('"YY" equals to "00"', function () {
73
- var now = new Date(100, 0, 1);
74
- expect(date.format(now, 'YY')).to.equal('00');
75
- });
76
- it('"YY" equals to "01"', function () {
77
- var now = new Date(101, 0, 1);
78
- expect(date.format(now, 'YY')).to.equal('01');
79
- });
80
- it('"YY" equals to "99"', function () {
81
- var now = new Date(199, 0, 1);
82
- expect(date.format(now, 'YY')).to.equal('99');
83
- });
84
- it('"YY" equals to "00"', function () {
85
- var now = new Date(1900, 0, 1);
86
- expect(date.format(now, 'YY')).to.equal('00');
87
- });
88
- it('"YY" equals to "01"', function () {
89
- var now = new Date(1901, 0, 1);
90
- expect(date.format(now, 'YY')).to.equal('01');
91
- });
92
- it('"YY" equals to "99"', function () {
93
- var now = new Date(1999, 0, 1);
94
- expect(date.format(now, 'YY')).to.equal('99');
95
- });
96
- it('"YY" equals to "00"', function () {
97
- var now = new Date(2000, 0, 1);
98
- expect(date.format(now, 'YY')).to.equal('00');
99
- });
100
- it('"YY" equals to "01"', function () {
101
- var now = new Date(2001, 0, 1);
102
- expect(date.format(now, 'YY')).to.equal('01');
103
- });
104
- it('"YY" equals to "99"', function () {
105
- var now = new Date(2099, 0, 1);
106
- expect(date.format(now, 'YY')).to.equal('99');
107
- });
108
- it('"YY" equals to "00"', function () {
109
- var now = new Date(9900, 0, 1);
110
- expect(date.format(now, 'YY')).to.equal('00');
111
- });
112
- it('"YY" equals to "01"', function () {
113
- var now = new Date(9901, 0, 1);
114
- expect(date.format(now, 'YY')).to.equal('01');
115
- });
116
- it('"YY" equals to "99"', function () {
117
- var now = new Date(9999, 0, 1);
118
- expect(date.format(now, 'YY')).to.equal('99');
119
- });
120
- it('"YY" as UTC equals to "XX"', function () {
121
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
122
- expect(date.format(now, 'YY')).to.equal('' + (now.getUTCFullYear() - 2000));
123
- });
124
- it('"Y" equals to "1"', function () {
125
- var now = new Date(0, -1899 * 12, 1);
126
- expect(date.format(now, 'Y')).to.equal('1');
127
- });
128
- it('"Y" equals to "10"', function () {
129
- var now = new Date(0, -1890 * 12, 1);
130
- expect(date.format(now, 'Y')).to.equal('10');
131
- });
132
- it('"Y" equals to "100"', function () {
133
- var now = new Date(100, 0, 1);
134
- expect(date.format(now, 'Y')).to.equal('100');
135
- });
136
- it('"Y" equals to "1000"', function () {
137
- var now = new Date(1000, 0, 1);
138
- expect(date.format(now, 'Y')).to.equal('1000');
139
- });
140
- it('"Y" equals to "10000"', function () {
141
- var now = new Date(10000, 0, 1);
142
- expect(date.format(now, 'Y')).to.equal('10000');
143
- });
144
- it('"Y" as UTC equals to "X"', function () {
145
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
146
- expect(date.format(now, 'Y')).to.equal('' + (now.getUTCFullYear()));
147
- });
148
- it('"MMMM" equals to "January"', function () {
149
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
150
- expect(date.format(now, 'MMMM')).to.equal('January');
151
- });
152
- it('"MMMM" equals to "December"', function () {
153
- var now = new Date(2015, 11, 1);
154
- expect(date.format(now, 'MMMM')).to.equal('December');
155
- });
156
- it('"MMM" equals to "Jan"', function () {
157
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
158
- expect(date.format(now, 'MMM')).to.equal('Jan');
159
- });
160
- it('"MMM" equals to "Dec"', function () {
161
- var now = new Date(2015, 11, 1);
162
- expect(date.format(now, 'MMM')).to.equal('Dec');
163
- });
164
- it('"MM" equals to "01"', function () {
165
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
166
- expect(date.format(now, 'MM')).to.equal('01');
167
- });
168
- it('"MM" equals to "12"', function () {
169
- var now = new Date(2015, 11, 1, 12, 34, 56, 789);
170
- expect(date.format(now, 'MM')).to.equal('12');
171
- });
172
- it('"MM" as UTC equals to "XX"', function () {
173
- var now = new Date(2015, 10, 1, 12, 34, 56, 789),
174
- utc = true;
175
- expect(date.format(now, 'MM', utc)).to.equal('' + (now.getUTCMonth() + 1));
176
- });
177
- it('"M" equals to "1"', function () {
178
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
179
- expect(date.format(now, 'M')).to.equal('1');
180
- });
181
- it('"M" equals to "12"', function () {
182
- var now = new Date(2015, 11, 1, 12, 34, 56, 789);
183
- expect(date.format(now, 'M')).to.equal('12');
184
- });
185
- it('"M" as UTC equals to "XX"', function () {
186
- var now = new Date(2015, 10, 1, 12, 34, 56, 789);
187
- expect(date.format(now, 'M')).to.equal('' + (now.getUTCMonth() + 1));
188
- });
189
- it('"DD" equals to "01"', function () {
190
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
191
- expect(date.format(now, 'DD')).to.equal('01');
192
- });
193
- it('"DD" equals to "31"', function () {
194
- var now = new Date(2015, 0, 31, 12, 34, 56, 789);
195
- expect(date.format(now, 'DD')).to.equal('31');
196
- });
197
- it('"DD" equals to "XX"', function () {
198
- var now = new Date(2015, 0, 15, 12, 34, 56, 789),
199
- utc = true;
200
- expect(date.format(now, 'DD', utc)).to.equal('' + now.getUTCDate());
201
- });
202
- it('"D" equals to "1"', function () {
203
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
204
- expect(date.format(now, 'D')).to.equal('1');
205
- });
206
- it('"D" equals to "31"', function () {
207
- var now = new Date(2015, 0, 31, 12, 34, 56, 789);
208
- expect(date.format(now, 'D')).to.equal('31');
209
- });
210
- it('"D" as UTC equals to "XX"', function () {
211
- var now = new Date(2015, 0, 15, 12, 34, 56, 789),
212
- utc = true;
213
- expect(date.format(now, 'D', utc)).to.equal('' + now.getUTCDate());
214
- });
215
- it('"dddd" equals to "Tuesday"', function () {
216
- var now = new Date(2015, 0, 6, 12, 34, 56, 789);
217
- expect(date.format(now, 'dddd')).to.equal('Tuesday');
218
- });
219
- it('"dddd" equals to "Thursday"', function () {
220
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
221
- expect(date.format(now, 'dddd')).to.equal('Thursday');
222
- });
223
- it('"ddd" equals to "Sun"', function () {
224
- var now = new Date(2015, 0, 4, 12, 34, 56, 789);
225
- expect(date.format(now, 'ddd')).to.equal('Sun');
226
- });
227
- it('"ddd" equals to "Wed"', function () {
228
- var now = new Date(2015, 0, 7, 12, 34, 56, 789);
229
- expect(date.format(now, 'ddd')).to.equal('Wed');
230
- });
231
- it('"dd" equals to "Fr"', function () {
232
- var now = new Date(2015, 0, 2, 12, 34, 56, 789);
233
- expect(date.format(now, 'dd')).to.equal('Fr');
234
- });
235
- it('"dd" equals to "Sa"', function () {
236
- var now = new Date(2015, 0, 3, 12, 34, 56, 789);
237
- expect(date.format(now, 'dd')).to.equal('Sa');
238
- });
239
- it('"HH" equals to "12"', function () {
240
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
241
- expect(date.format(now, 'HH')).to.equal('12');
242
- });
243
- it('"HH" equals to "00"', function () {
244
- var now = new Date(2015, 0, 1, 0, 34, 56, 789);
245
- expect(date.format(now, 'HH')).to.equal('00');
246
- });
247
- it('"HH" equals to "23"', function () {
248
- var now = new Date(2015, 0, 1, 23, 34, 56, 789);
249
- expect(date.format(now, 'HH')).to.equal('23');
250
- });
251
- it('"HH" as UTC equals to "XX"', function () {
252
- var now = new Date(2015, 0, 1, 12, 34, 56, 789),
253
- utc = true;
254
- expect(date.format(now, 'HH', utc)).to.equal(('0' + now.getUTCHours()).slice(-2));
255
- });
256
- it('"H" equals to "12"', function () {
257
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
258
- expect(date.format(now, 'H')).to.equal('12');
259
- });
260
- it('"H" equals to "0"', function () {
261
- var now = new Date(2015, 0, 1, 0, 34, 56, 789);
262
- expect(date.format(now, 'H')).to.equal('0');
263
- });
264
- it('"H" equals to "23"', function () {
265
- var now = new Date(2015, 0, 1, 23, 34, 56, 789);
266
- expect(date.format(now, 'H')).to.equal('23');
267
- });
268
- it('"H" as UTC equals to "XX"', function () {
269
- var now = new Date(2015, 0, 1, 12, 34, 56, 789),
270
- utc = true;
271
- expect(date.format(now, 'H', utc)).to.equal('' + now.getUTCHours());
272
- });
273
- it('"hh A" equals to "12 PM"', function () {
274
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
275
- expect(date.format(now, 'hh A')).to.equal('12 PM');
276
- });
277
- it('"hh A" equals to "12 AM"', function () {
278
- var now = new Date(2015, 0, 1, 0, 34, 56, 789);
279
- expect(date.format(now, 'hh A')).to.equal('12 AM');
280
- });
281
- it('"hh A" equals to "11 PM"', function () {
282
- var now = new Date(2015, 0, 1, 23, 34, 56, 789);
283
- expect(date.format(now, 'hh A')).to.equal('11 PM');
284
- });
285
- it('"hh A" equals to "01 AM"', function () {
286
- var now = new Date(2015, 0, 1, 1, 34, 56, 789);
287
- expect(date.format(now, 'hh A')).to.equal('01 AM');
288
- });
289
- it('"hh A" equals to "01 PM"', function () {
290
- var now = new Date(2015, 0, 1, 13, 34, 56, 789);
291
- expect(date.format(now, 'hh A')).to.equal('01 PM');
292
- });
293
- it('"h A" equals to "12 PM"', function () {
294
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
295
- expect(date.format(now, 'h A')).to.equal('12 PM');
296
- });
297
- it('"h A" equals to "12 AM"', function () {
298
- var now = new Date(2015, 0, 1, 0, 34, 56, 789);
299
- expect(date.format(now, 'h A')).to.equal('12 AM');
300
- });
301
- it('"h A" equals to "11 PM"', function () {
302
- var now = new Date(2015, 0, 1, 23, 34, 56, 789);
303
- expect(date.format(now, 'h A')).to.equal('11 PM');
304
- });
305
- it('"h A" equals to "1 AM"', function () {
306
- var now = new Date(2015, 0, 1, 1, 34, 56, 789);
307
- expect(date.format(now, 'h A')).to.equal('1 AM');
308
- });
309
- it('"h A" equals to "1 PM"', function () {
310
- var now = new Date(2015, 0, 1, 13, 34, 56, 789);
311
- expect(date.format(now, 'h A')).to.equal('1 PM');
312
- });
313
- it('"mm" equals to "34"', function () {
314
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
315
- expect(date.format(now, 'mm')).to.equal('34');
316
- });
317
- it('"mm" equals to "00"', function () {
318
- var now = new Date(2015, 0, 1, 12, 0, 56, 789);
319
- expect(date.format(now, 'mm')).to.equal('00');
320
- });
321
- it('"mm" equals to "59"', function () {
322
- var now = new Date(2015, 0, 1, 12, 59, 56, 789);
323
- expect(date.format(now, 'mm')).to.equal('59');
324
- });
325
- it('"mm" as UTC equals to "XX"', function () {
326
- var now = new Date(2015, 0, 1, 12, 59, 56, 789),
327
- utc = true;
328
- expect(date.format(now, 'mm', utc)).to.equal(('0' + now.getUTCMinutes()).slice(-2));
329
- });
330
- it('"m" equals to "34"', function () {
331
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
332
- expect(date.format(now, 'm')).to.equal('34');
333
- });
334
- it('"m" equals to "0"', function () {
335
- var now = new Date(2015, 0, 1, 12, 0, 56, 789);
336
- expect(date.format(now, 'm')).to.equal('0');
337
- });
338
- it('"m" equals to "59"', function () {
339
- var now = new Date(2015, 0, 1, 12, 59, 56, 789);
340
- expect(date.format(now, 'm')).to.equal('59');
341
- });
342
- it('"m" as UTC equals to "XX"', function () {
343
- var now = new Date(2015, 0, 1, 12, 59, 56, 789),
344
- utc = true;
345
- expect(date.format(now, 'm', utc)).to.equal('' + now.getUTCMinutes());
346
- });
347
- it('"ss" equals to "56"', function () {
348
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
349
- expect(date.format(now, 'ss')).to.equal('56');
350
- });
351
- it('"ss" equals to "00"', function () {
352
- var now = new Date(2015, 0, 1, 12, 34, 0, 789);
353
- expect(date.format(now, 'ss')).to.equal('00');
354
- });
355
- it('"ss" equals to "59"', function () {
356
- var now = new Date(2015, 0, 1, 12, 34, 59, 789);
357
- expect(date.format(now, 'ss')).to.equal('59');
358
- });
359
- it('"ss" as UTC equals to "59"', function () {
360
- var now = new Date(2015, 0, 1, 12, 34, 59, 789),
361
- utc = true;
362
- expect(date.format(now, 'ss', utc)).to.equal(('0' + now.getUTCSeconds()).slice(-2));
363
- });
364
- it('"s" equals to "56"', function () {
365
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
366
- expect(date.format(now, 's')).to.equal('56');
367
- });
368
- it('"s" equals to "0"', function () {
369
- var now = new Date(2015, 0, 1, 12, 34, 0, 789);
370
- expect(date.format(now, 's')).to.equal('0');
371
- });
372
- it('"s" equals to "59"', function () {
373
- var now = new Date(2015, 0, 1, 12, 34, 59, 789);
374
- expect(date.format(now, 's')).to.equal('59');
375
- });
376
- it('"s" as UTC equals to "59"', function () {
377
- var now = new Date(2015, 0, 1, 12, 34, 59, 789),
378
- utc = true;
379
- expect(date.format(now, 's', utc)).to.equal('' + now.getUTCSeconds());
380
- });
381
- it('"SSS" equals to "789"', function () {
382
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
383
- expect(date.format(now, 'SSS')).to.equal('789');
384
- });
385
- it('"SSS" equals to "000"', function () {
386
- var now = new Date(2015, 0, 1, 12, 34, 56, 0);
387
- expect(date.format(now, 'SSS')).to.equal('000');
388
- });
389
- it('"SSS" equals to "001"', function () {
390
- var now = new Date(2015, 0, 1, 12, 34, 56, 1);
391
- expect(date.format(now, 'SSS')).to.equal('001');
392
- });
393
- it('"SSS" as UTC equals to "XXX"', function () {
394
- var now = new Date(2015, 0, 1, 12, 34, 56, 10),
395
- utc = true;
396
- expect(date.format(now, 'SSS', utc)).to.equal(('00' + now.getUTCMilliseconds()).slice(-3));
397
- });
398
- it('"SS" equals to "78"', function () {
399
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
400
- expect(date.format(now, 'SS')).to.equal('78');
401
- });
402
- it('"SS" equals to "00"', function () {
403
- var now = new Date(2015, 0, 1, 12, 34, 56, 0);
404
- expect(date.format(now, 'SS')).to.equal('00');
405
- });
406
- it('"SS" equals to "00"', function () {
407
- var now = new Date(2015, 0, 1, 12, 34, 56, 1);
408
- expect(date.format(now, 'SS')).to.equal('00');
409
- });
410
- it('"SS" as UTC equals to "XX"', function () {
411
- var now = new Date(2015, 0, 1, 12, 34, 56, 9),
412
- utc = true;
413
- expect(date.format(now, 'SS', utc)).to.equal(('00' + now.getUTCMilliseconds()).slice(-3).slice(0, 2));
414
- });
415
- it('"S" equals to "7"', function () {
416
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
417
- expect(date.format(now, 'S')).to.equal('7');
418
- });
419
- it('"S" equals to "0"', function () {
420
- var now = new Date(2015, 0, 1, 12, 34, 56, 0);
421
- expect(date.format(now, 'S')).to.equal('0');
422
- });
423
- it('"S" equals to "0"', function () {
424
- var now = new Date(2015, 0, 1, 12, 34, 56, 1);
425
- expect(date.format(now, 'S')).to.equal('0');
426
- });
427
- it('"S" equals to "X"', function () {
428
- var now = new Date(2015, 0, 1, 12, 34, 56, 789),
429
- utc = true;
430
- expect(date.format(now, 'S', utc)).to.equal(('00' + now.getUTCMilliseconds()).slice(-3).slice(0, 1));
431
- });
432
- it('"Z" matches "+XXXX/-XXXX"', function () {
433
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
434
- expect(date.format(now, 'Z')).to.match(/^[+-]\d{4}$/);
435
- });
436
- it('"Z" as UTC equals to "+0000"', function () {
437
- var now = new Date(2015, 0, 1, 12, 34, 56, 789),
438
- utc = true;
439
- expect(date.format(now, 'Z', utc)).to.equal('+0000');
440
- });
441
- it('"ZZ" matches "+XX:XX/-XX:XX"', function () {
442
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
443
- expect(date.format(now, 'ZZ')).to.match(/^[+-]\d{2}:\d{2}$/);
444
- });
445
- it('"ZZ" as UTC equals to "+00:00"', function () {
446
- var now = new Date(2015, 0, 1, 12, 34, 56, 789),
447
- utc = true;
448
- expect(date.format(now, 'ZZ', utc)).to.equal('+00:00');
449
- });
450
- it('"ddd MMM DD YYYY HH:mm:ss" equals to "Thu Jan 01 2015 12:34:56"', function () {
451
- var now = new Date(2015, 0, 1, 12, 34, 56, 789);
452
- expect(date.format(now, 'ddd MMM DD YYYY HH:mm:ss')).to.equal('Thu Jan 01 2015 12:34:56');
453
- });
454
- it('"YYYY/MM/DD HH:mm:ss.SSS" equals to "1900/01/01 00:00:00.000"', function () {
455
- var now = new Date(0, 0, 1);
456
- expect(date.format(now, 'YYYY/MM/DD HH:mm:ss.SSS')).to.equal('1900/01/01 00:00:00.000');
457
- });
458
- it('"YY/MM/DD HH:mm:ss.SSS" equals to "00/01/01 00:00:00.000"', function () {
459
- var now = new Date(0, 0, 1);
460
- expect(date.format(now, 'YY/MM/DD HH:mm:ss.SSS')).to.equal('00/01/01 00:00:00.000');
461
- });
462
- it('"Y/M/D H:m:s.SSS" equals to "999/1/1 0:0:0.000"', function () {
463
- var now = new Date(999, 0, 1);
464
- expect(date.format(now, 'Y/M/D H:m:s.SSS')).to.equal('999/1/1 0:0:0.000');
465
- });
466
- it('"dddd, MMMM D, YYYY h A" equals to "Saturday, January 1, 2000 10 AM"', function () {
467
- var now = new Date(2000, 0, 1, 10, 0, 0);
468
- expect(date.format(now, 'dddd, MMMM D, YYYY h A')).to.equal('Saturday, January 1, 2000 10 AM');
469
- });
470
- it('"[dddd, MMMM D, YYYY h A]" equals to "dddd, MMMM D, YYYY h A"', function () {
471
- var now = new Date(2000, 0, 1, 10, 0, 0);
472
- expect(date.format(now, '[dddd, MMMM D, YYYY h A]')).to.equal('dddd, MMMM D, YYYY h A');
473
- });
474
- it('"[dddd], MMMM [D], YYYY [h] A" equals to "dddd, January D, 2000 h AM"', function () {
475
- var now = new Date(2000, 0, 1, 10, 0, 0);
476
- expect(date.format(now, '[dddd], MMMM [D], YYYY [h] A')).to.equal('dddd, January D, 2000 h AM');
477
- });
478
- it('"[[dddd], MMMM [D], YYYY [h] A]" equals to "[dddd], MMMM [D], YYYY [h] A"', function () {
479
- var now = new Date(2000, 0, 1, 10, 0, 0);
480
- expect(date.format(now, '[[dddd], MMMM [D], YYYY [h] A]')).to.equal('[dddd], MMMM [D], YYYY [h] A');
481
- });
482
- it('"[dddd], MMMM [[D], YYYY] [h] A" equals to "dddd, January [D], YYYY h AM"', function () {
483
- var now = new Date(2000, 0, 1, 10, 0, 0);
484
- expect(date.format(now, '[dddd], MMMM [[D], YYYY] [h] A')).to.equal('dddd, January [D], YYYY h AM');
485
- });
486
- });
487
-
488
- describe('compile', function () {
489
- it('YYYY', function () {
490
- var obj = ['YYYY', 'YYYY'];
491
- expect(date.compile('YYYY')).to.eql(obj);
492
- });
493
- it('Y', function () {
494
- var obj = ['Y', 'Y'];
495
- expect(date.compile('Y')).to.eql(obj);
496
- });
497
- it('YYYY MMMM', function () {
498
- var obj = ['YYYY MMMM', 'YYYY', ' ', 'MMMM'];
499
- expect(date.compile('YYYY MMMM')).to.eql(obj);
500
- });
501
- it('YYYY MMM', function () {
502
- var obj = ['YYYY MMM', 'YYYY', ' ', 'MMM'];
503
- expect(date.compile('YYYY MMM')).to.eql(obj);
504
- });
505
- it('YYYY-MM', function () {
506
- var obj = ['YYYY-MM', 'YYYY', '-', 'MM'];
507
- expect(date.compile('YYYY-MM')).to.eql(obj);
508
- });
509
- it('YYYY-M', function () {
510
- var obj = ['YYYY-M', 'YYYY', '-', 'M'];
511
- expect(date.compile('YYYY-M')).to.eql(obj);
512
- });
513
- it('YYYY-MM-DD', function () {
514
- var obj = ['YYYY-MM-DD', 'YYYY', '-', 'MM', '-', 'DD'];
515
- expect(date.compile('YYYY-MM-DD')).to.eql(obj);
516
- });
517
- it('YYYY-M-D', function () {
518
- var obj = ['YYYY-M-D', 'YYYY', '-', 'M', '-', 'D'];
519
- expect(date.compile('YYYY-M-D')).to.eql(obj);
520
- });
521
- it('YYYY-MM-DD HH', function () {
522
- var obj = ['YYYY-MM-DD HH', 'YYYY', '-', 'MM', '-', 'DD', ' ', 'HH'];
523
- expect(date.compile('YYYY-MM-DD HH')).to.eql(obj);
524
- });
525
- it('YYYY-M-D H', function () {
526
- var obj = ['YYYY-M-D H', 'YYYY', '-', 'M', '-', 'D', ' ', 'H'];
527
- expect(date.compile('YYYY-M-D H')).to.eql(obj);
528
- });
529
- it('YYYY-M-D hh A', function () {
530
- var obj = ['YYYY-M-D hh A', 'YYYY', '-', 'M', '-', 'D', ' ', 'hh', ' ', 'A'];
531
- expect(date.compile('YYYY-M-D hh A')).to.eql(obj);
532
- });
533
- it('YYYY-M-D h A', function () {
534
- var obj = ['YYYY-M-D h A', 'YYYY', '-', 'M', '-', 'D', ' ', 'h', ' ', 'A'];
535
- expect(date.compile('YYYY-M-D h A')).to.eql(obj);
536
- });
537
- it('YYYY-MM-DD HH:mm', function () {
538
- var obj = ['YYYY-MM-DD HH:mm', 'YYYY', '-', 'MM', '-', 'DD', ' ', 'HH', ':', 'mm'];
539
- expect(date.compile('YYYY-MM-DD HH:mm')).to.eql(obj);
540
- });
541
- it('YYYY-M-D H:m', function () {
542
- var obj = ['YYYY-M-D H:m', 'YYYY', '-', 'M', '-', 'D', ' ', 'H', ':', 'm'];
543
- expect(date.compile('YYYY-M-D H:m')).to.eql(obj);
544
- });
545
- it('YYYY-MM-DD HH:mm:ss', function () {
546
- var obj = ['YYYY-MM-DD HH:mm:ss', 'YYYY', '-', 'MM', '-', 'DD', ' ', 'HH', ':', 'mm', ':', 'ss'];
547
- expect(date.compile('YYYY-MM-DD HH:mm:ss')).to.eql(obj);
548
- });
549
- it('YYYY-M-D H:m:s', function () {
550
- var obj = ['YYYY-M-D H:m:s', 'YYYY', '-', 'M', '-', 'D', ' ', 'H', ':', 'm', ':', 's'];
551
- expect(date.compile('YYYY-M-D H:m:s')).to.eql(obj);
552
- });
553
- it('YYYY-M-D H:m:s.SSS', function () {
554
- var obj = ['YYYY-M-D H:m:s.SSS', 'YYYY', '-', 'M', '-', 'D', ' ', 'H', ':', 'm', ':', 's', '.', 'SSS'];
555
- expect(date.compile('YYYY-M-D H:m:s.SSS')).to.eql(obj);
556
- });
557
- it('YYYY-M-D H:m:s.SS', function () {
558
- var obj = ['YYYY-M-D H:m:s.SS', 'YYYY', '-', 'M', '-', 'D', ' ', 'H', ':', 'm', ':', 's', '.', 'SS'];
559
- expect(date.compile('YYYY-M-D H:m:s.SS')).to.eql(obj);
560
- });
561
- it('YYYY-M-D H:m:s.S', function () {
562
- var obj = ['YYYY-M-D H:m:s.S', 'YYYY', '-', 'M', '-', 'D', ' ', 'H', ':', 'm', ':', 's', '.', 'S'];
563
- expect(date.compile('YYYY-M-D H:m:s.S')).to.eql(obj);
564
- });
565
- it('MMDDHHmmssSSS', function () {
566
- var obj = ['MMDDHHmmssSSS', 'MM', 'DD', 'HH', 'mm', 'ss', 'SSS'];
567
- expect(date.compile('MMDDHHmmssSSS')).to.eql(obj);
568
- });
569
- it('DDHHmmssSSS', function () {
570
- var obj = ['DDHHmmssSSS', 'DD', 'HH', 'mm', 'ss', 'SSS'];
571
- expect(date.compile('DDHHmmssSSS')).to.eql(obj);
572
- });
573
- it('HHmmssSSS', function () {
574
- var obj = ['HHmmssSSS', 'HH', 'mm', 'ss', 'SSS'];
575
- expect(date.compile('HHmmssSSS')).to.eql(obj);
576
- });
577
- it('mmssSSS', function () {
578
- var obj = ['mmssSSS', 'mm', 'ss', 'SSS'];
579
- expect(date.compile('mmssSSS')).to.eql(obj);
580
- });
581
- it('ssSSS', function () {
582
- var obj = ['ssSSS', 'ss', 'SSS'];
583
- expect(date.compile('ssSSS')).to.eql(obj);
584
- });
585
- it('SSS', function () {
586
- var obj = ['SSS', 'SSS'];
587
- expect(date.compile('SSS')).to.eql(obj);
588
- });
589
- it('foo', function () {
590
- var obj = ['foo', 'f', 'oo'];
591
- expect(date.compile('foo')).to.eql(obj);
592
- });
593
- it('bar', function () {
594
- var obj = ['bar', 'b', 'a', 'r'];
595
- expect(date.compile('bar')).to.eql(obj);
596
- });
597
- it('YYYYMMDD', function () {
598
- var obj = ['YYYYMMDD', 'YYYY', 'MM', 'DD'];
599
- expect(date.compile('YYYYMMDD')).to.eql(obj);
600
- });
601
- it('20150101235959', function () {
602
- var obj = ['20150101235959', '2', '0', '1', '5', '0', '1', '0', '1', '2', '3', '5', '9', '5', '9'];
603
- expect(date.compile('20150101235959')).to.eql(obj);
604
- });
605
- it('YYYY?M?D H?m?s?S', function () {
606
- var obj = ['YYYY?M?D H?m?s?S', 'YYYY', '?', 'M', '?', 'D', ' ', 'H', '?', 'm', '?', 's', '?', 'S'];
607
- expect(date.compile('YYYY?M?D H?m?s?S')).to.eql(obj);
608
- });
609
- it('[Y]YYYY[M]M[D]D[H]H[m]m[s]s[S]S', function () {
610
- var obj = ['[Y]YYYY[M]M[D]D[H]H[m]m[s]s[S]S', '[Y]', 'YYYY', '[M]', 'M', '[D]', 'D', '[H]', 'H', '[m]', 'm', '[s]', 's', '[S]', 'S'];
611
- expect(date.compile('[Y]YYYY[M]M[D]D[H]H[m]m[s]s[S]S')).to.eql(obj);
612
- });
613
- it('[[Y]YYYY[M]MM[D]DD[H]HH[m]mm[s]ss[S]S]', function () {
614
- var obj = ['[[Y]YYYY[M]MM[D]DD[H]HH[m]mm[s]ss[S]S]', '[[Y]YYYY[M]MM[D]DD[H]HH[m]mm[s]ss[S]S]'];
615
- expect(date.compile('[[Y]YYYY[M]MM[D]DD[H]HH[m]mm[s]ss[S]S]')).to.eql(obj);
616
- });
617
- it(' ', function () {
618
- var obj = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '];
619
- expect(date.compile(' ')).to.eql(obj);
620
- });
621
- });
622
-
623
- describe('preparse', function () {
624
- it('YYYY', function () {
625
- var dt = { Y: 0, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 4, _match: 1 };
626
- expect(date.preparse('0000', 'YYYY')).to.eql(dt);
627
- });
628
- it('YYYY', function () {
629
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 4, _match: 1 };
630
- expect(date.preparse('0001', 'YYYY')).to.eql(dt);
631
- });
632
- it('YYYY', function () {
633
- var dt = { Y: 99, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 4, _match: 1 };
634
- expect(date.preparse('0099', 'YYYY')).to.eql(dt);
635
- });
636
- it('YYYY', function () {
637
- var dt = { Y: 100, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 4, _match: 1 };
638
- expect(date.preparse('0100', 'YYYY')).to.eql(dt);
639
- });
640
- it('YYYY', function () {
641
- var dt = { Y: 1899, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 4, _match: 1 };
642
- expect(date.preparse('1899', 'YYYY')).to.eql(dt);
643
- });
644
- it('YYYY', function () {
645
- var dt = { Y: 1900, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 4, _match: 1 };
646
- expect(date.preparse('1900', 'YYYY')).to.eql(dt);
647
- });
648
- it('YYYY', function () {
649
- var dt = { Y: 1969, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 4, _match: 1 };
650
- expect(date.preparse('1969', 'YYYY')).to.eql(dt);
651
- });
652
- it('YYYY', function () {
653
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 4, _match: 1 };
654
- expect(date.preparse('1970', 'YYYY')).to.eql(dt);
655
- });
656
- it('YYYY', function () {
657
- var dt = { Y: 1999, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 4, _match: 1 };
658
- expect(date.preparse('1999', 'YYYY')).to.eql(dt);
659
- });
660
- it('YYYY', function () {
661
- var dt = { Y: 2000, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 4, _match: 1 };
662
- expect(date.preparse('2000', 'YYYY')).to.eql(dt);
663
- });
664
- it('YYYY', function () {
665
- var dt = { Y: 9999, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 4, _match: 1 };
666
- expect(date.preparse('9999', 'YYYY')).to.eql(dt);
667
- });
668
- it('Y', function () {
669
- var dt = { Y: 0, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
670
- expect(date.preparse('0', 'Y')).to.eql(dt);
671
- });
672
- it('Y', function () {
673
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
674
- expect(date.preparse('1', 'Y')).to.eql(dt);
675
- });
676
- it('Y', function () {
677
- var dt = { Y: 99, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 2, _length: 2, _match: 1 };
678
- expect(date.preparse('99', 'Y')).to.eql(dt);
679
- });
680
- it('Y', function () {
681
- var dt = { Y: 100, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 3, _length: 3, _match: 1 };
682
- expect(date.preparse('100', 'Y')).to.eql(dt);
683
- });
684
- it('YYYY MMMM', function () {
685
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 12, _length: 12, _match: 2 };
686
- expect(date.preparse('2015 January', 'YYYY MMMM')).to.eql(dt);
687
- });
688
- it('YYYY MMMM', function () {
689
- var dt = { Y: 2015, M: 12, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 13, _length: 13, _match: 2 };
690
- expect(date.preparse('2015 December', 'YYYY MMMM')).to.eql(dt);
691
- });
692
- it('YYYY MMMM', function () {
693
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 5, _length: 9, _match: 1 };
694
- expect(date.preparse('2015 Zero', 'YYYY MMMM')).to.eql(dt);
695
- });
696
- it('YYYY MMM', function () {
697
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 8, _length: 8, _match: 2 };
698
- expect(date.preparse('2015 Jan', 'YYYY MMM')).to.eql(dt);
699
- });
700
- it('YYYY MMM', function () {
701
- var dt = { Y: 2015, M: 12, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 8, _length: 8, _match: 2 };
702
- expect(date.preparse('2015 Dec', 'YYYY MMM')).to.eql(dt);
703
- });
704
- it('YYYY MMM', function () {
705
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 5, _length: 9, _match: 1 };
706
- expect(date.preparse('2015 Zero', 'YYYY MMM')).to.eql(dt);
707
- });
708
- it('YYYY-MM', function () {
709
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 7, _length: 7, _match: 2 };
710
- expect(date.preparse('2015-01', 'YYYY-MM')).to.eql(dt);
711
- });
712
- it('YYYY-MM', function () {
713
- var dt = { Y: 2015, M: 12, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 7, _length: 7, _match: 2 };
714
- expect(date.preparse('2015-12', 'YYYY-MM')).to.eql(dt);
715
- });
716
- it('YYYY-MM', function () {
717
- var dt = { Y: 2015, M: 0, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 7, _length: 7, _match: 2 };
718
- expect(date.preparse('2015-00', 'YYYY-MM')).to.eql(dt);
719
- });
720
- it('YYYY-M', function () {
721
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 6, _length: 6, _match: 2 };
722
- expect(date.preparse('2015-1', 'YYYY-M')).to.eql(dt);
723
- });
724
- it('YYYY-M', function () {
725
- var dt = { Y: 2015, M: 12, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 7, _length: 7, _match: 2 };
726
- expect(date.preparse('2015-12', 'YYYY-M')).to.eql(dt);
727
- });
728
- it('YYYY-M', function () {
729
- var dt = { Y: 2015, M: 0, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 6, _length: 6, _match: 2 };
730
- expect(date.preparse('2015-0', 'YYYY-M')).to.eql(dt);
731
- });
732
- it('YYYY-MM-DD', function () {
733
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 10, _length: 10, _match: 3 };
734
- expect(date.preparse('2015-01-01', 'YYYY-MM-DD')).to.eql(dt);
735
- });
736
- it('YYYY-MM-DD', function () {
737
- var dt = { Y: 2015, M: 12, D: 31, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 10, _length: 10, _match: 3 };
738
- expect(date.preparse('2015-12-31', 'YYYY-MM-DD')).to.eql(dt);
739
- });
740
- it('YYYY-MM-DD', function () {
741
- var dt = { Y: 2015, M: 0, D: 0, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 10, _length: 10, _match: 3 };
742
- expect(date.preparse('2015-00-00', 'YYYY-MM-DD')).to.eql(dt);
743
- });
744
- it('YYYY-M-D', function () {
745
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 8, _length: 8, _match: 3 };
746
- expect(date.preparse('2015-1-1', 'YYYY-M-D')).to.eql(dt);
747
- });
748
- it('YYYY-M-D', function () {
749
- var dt = { Y: 2015, M: 12, D: 31, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 10, _length: 10, _match: 3 };
750
- expect(date.preparse('2015-12-31', 'YYYY-M-D')).to.eql(dt);
751
- });
752
- it('YYYY-M-D', function () {
753
- var dt = { Y: 2015, M: 0, D: 0, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 8, _length: 8, _match: 3 };
754
- expect(date.preparse('2015-0-0', 'YYYY-M-D')).to.eql(dt);
755
- });
756
- it('YYYY-MM-DD HH', function () {
757
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 13, _length: 13, _match: 4 };
758
- expect(date.preparse('2015-01-01 00', 'YYYY-MM-DD HH')).to.eql(dt);
759
- });
760
- it('YYYY-MM-DD HH', function () {
761
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 13, _length: 13, _match: 4 };
762
- expect(date.preparse('2015-12-31 23', 'YYYY-MM-DD HH')).to.eql(dt);
763
- });
764
- it('YYYY-MM-DD HH', function () {
765
- var dt = { Y: 2015, M: 0, D: 0, H: 24, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 13, _length: 13, _match: 4 };
766
- expect(date.preparse('2015-00-00 24', 'YYYY-MM-DD HH')).to.eql(dt);
767
- });
768
- it('YYYY-M-D H', function () {
769
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 10, _length: 10, _match: 4 };
770
- expect(date.preparse('2015-1-1 0', 'YYYY-M-D H')).to.eql(dt);
771
- });
772
- it('YYYY-M-D H', function () {
773
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 13, _length: 13, _match: 4 };
774
- expect(date.preparse('2015-12-31 23', 'YYYY-M-D H')).to.eql(dt);
775
- });
776
- it('YYYY-M-D H', function () {
777
- var dt = { Y: 2015, M: 0, D: 0, H: 24, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 11, _length: 11, _match: 4 };
778
- expect(date.preparse('2015-0-0 24', 'YYYY-M-D H')).to.eql(dt);
779
- });
780
- it('YYYY-M-D hh A', function () {
781
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 12, m: 0, s: 0, S: 0, Z: 0, _index: 14, _length: 14, _match: 5 };
782
- expect(date.preparse('2015-1-1 12 AM', 'YYYY-M-D hh A')).to.eql(dt);
783
- });
784
- it('YYYY-M-D hh A', function () {
785
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 1, h: 11, m: 0, s: 0, S: 0, Z: 0, _index: 16, _length: 16, _match: 5 };
786
- expect(date.preparse('2015-12-31 11 PM', 'YYYY-M-D hh A')).to.eql(dt);
787
- });
788
- it('YYYY-M-D hh A', function () {
789
- var dt = { Y: 2015, M: 0, D: 0, H: 0, A: 0, h: 12, m: 0, s: 0, S: 0, Z: 0, _index: 14, _length: 14, _match: 5 };
790
- expect(date.preparse('2015-0-0 12 AM', 'YYYY-M-D hh A')).to.eql(dt);
791
- });
792
- it('YYYY-M-D h A', function () {
793
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 12, m: 0, s: 0, S: 0, Z: 0, _index: 14, _length: 14, _match: 5 };
794
- expect(date.preparse('2015-1-1 12 AM', 'YYYY-M-D h A')).to.eql(dt);
795
- });
796
- it('YYYY-M-D h A', function () {
797
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 1, h: 11, m: 0, s: 0, S: 0, Z: 0, _index: 16, _length: 16, _match: 5 };
798
- expect(date.preparse('2015-12-31 11 PM', 'YYYY-M-D h A')).to.eql(dt);
799
- });
800
- it('YYYY-M-D h A', function () {
801
- var dt = { Y: 2015, M: 0, D: 0, H: 0, A: 0, h: 12, m: 0, s: 0, S: 0, Z: 0, _index: 14, _length: 14, _match: 5 };
802
- expect(date.preparse('2015-0-0 12 AM', 'YYYY-M-D h A')).to.eql(dt);
803
- });
804
- it('YYYY-MM-DD HH:mm', function () {
805
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 16, _length: 16, _match: 5 };
806
- expect(date.preparse('2015-01-01 00:00', 'YYYY-MM-DD HH:mm')).to.eql(dt);
807
- });
808
- it('YYYY-MM-DD HH:mm', function () {
809
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 0, S: 0, Z: 0, _index: 16, _length: 16, _match: 5 };
810
- expect(date.preparse('2015-12-31 23:59', 'YYYY-MM-DD HH:mm')).to.eql(dt);
811
- });
812
- it('YYYY-MM-DD HH:mm', function () {
813
- var dt = { Y: 2015, M: 0, D: 0, H: 24, A: 0, h: 0, m: 60, s: 0, S: 0, Z: 0, _index: 16, _length: 16, _match: 5 };
814
- expect(date.preparse('2015-00-00 24:60', 'YYYY-MM-DD HH:mm')).to.eql(dt);
815
- });
816
- it('YYYY-M-D H:m', function () {
817
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 12, _length: 12, _match: 5 };
818
- expect(date.preparse('2015-1-1 0:0', 'YYYY-M-D H:m')).to.eql(dt);
819
- });
820
- it('YYYY-M-D H:m', function () {
821
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 0, S: 0, Z: 0, _index: 16, _length: 16, _match: 5 };
822
- expect(date.preparse('2015-12-31 23:59', 'YYYY-M-D H:m')).to.eql(dt);
823
- });
824
- it('YYYY-M-D H:m', function () {
825
- var dt = { Y: 2015, M: 0, D: 0, H: 24, A: 0, h: 0, m: 60, s: 0, S: 0, Z: 0, _index: 14, _length: 14, _match: 5 };
826
- expect(date.preparse('2015-0-0 24:60', 'YYYY-M-D H:m')).to.eql(dt);
827
- });
828
- it('YYYY-MM-DD HH:mm:ss', function () {
829
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 19, _length: 19, _match: 6 };
830
- expect(date.preparse('2015-01-01 00:00:00', 'YYYY-MM-DD HH:mm:ss')).to.eql(dt);
831
- });
832
- it('YYYY-MM-DD HH:mm:ss', function () {
833
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 59, S: 0, Z: 0, _index: 19, _length: 19, _match: 6 };
834
- expect(date.preparse('2015-12-31 23:59:59', 'YYYY-MM-DD HH:mm:ss')).to.eql(dt);
835
- });
836
- it('YYYY-MM-DD HH:mm:ss', function () {
837
- var dt = { Y: 2015, M: 0, D: 0, H: 24, A: 0, h: 0, m: 60, s: 60, S: 0, Z: 0, _index: 19, _length: 19, _match: 6 };
838
- expect(date.preparse('2015-00-00 24:60:60', 'YYYY-MM-DD HH:mm:ss')).to.eql(dt);
839
- });
840
- it('YYYY-M-D H:m:s', function () {
841
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 14, _length: 14, _match: 6 };
842
- expect(date.preparse('2015-1-1 0:0:0', 'YYYY-M-D H:m:s')).to.eql(dt);
843
- });
844
- it('YYYY-M-D H:m:s', function () {
845
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 59, S: 0, Z: 0, _index: 19, _length: 19, _match: 6 };
846
- expect(date.preparse('2015-12-31 23:59:59', 'YYYY-M-D H:m:s')).to.eql(dt);
847
- });
848
- it('YYYY-M-D H:m:s', function () {
849
- var dt = { Y: 2015, M: 0, D: 0, H: 24, A: 0, h: 0, m: 60, s: 60, S: 0, Z: 0, _index: 17, _length: 17, _match: 6 };
850
- expect(date.preparse('2015-0-0 24:60:60', 'YYYY-M-D H:m:s')).to.eql(dt);
851
- });
852
- it('YYYY-M-D H:m:s.SSS', function () {
853
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 16, _length: 16, _match: 7 };
854
- expect(date.preparse('2015-1-1 0:0:0.0', 'YYYY-M-D H:m:s.SSS')).to.eql(dt);
855
- });
856
- it('YYYY-M-D H:m:s.SSS', function () {
857
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 59, S: 999, Z: 0, _index: 23, _length: 23, _match: 7 };
858
- expect(date.preparse('2015-12-31 23:59:59.999', 'YYYY-M-D H:m:s.SSS')).to.eql(dt);
859
- });
860
- it('YYYY-M-D H:m:s.SSS', function () {
861
- var dt = { Y: 2015, M: 0, D: 0, H: 24, A: 0, h: 0, m: 60, s: 61, S: 0, Z: 0, _index: 21, _length: 21, _match: 7 };
862
- expect(date.preparse('2015-0-0 24:60:61.000', 'YYYY-M-D H:m:s.SSS')).to.eql(dt);
863
- });
864
- it('YYYY-M-D H:m:s.SS', function () {
865
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 16, _length: 16, _match: 7 };
866
- expect(date.preparse('2015-1-1 0:0:0.0', 'YYYY-M-D H:m:s.SS')).to.eql(dt);
867
- });
868
- it('YYYY-M-D H:m:s.SS', function () {
869
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 59, S: 990, Z: 0, _index: 22, _length: 22, _match: 7 };
870
- expect(date.preparse('2015-12-31 23:59:59.99', 'YYYY-M-D H:m:s.SS')).to.eql(dt);
871
- });
872
- it('YYYY-M-D H:m:s.SS', function () {
873
- var dt = { Y: 2015, M: 0, D: 0, H: 24, A: 0, h: 0, m: 60, s: 61, S: 0, Z: 0, _index: 20, _length: 20, _match: 7 };
874
- expect(date.preparse('2015-0-0 24:60:61.00', 'YYYY-M-D H:m:s.SS')).to.eql(dt);
875
- });
876
- it('YYYY-M-D H:m:s.S', function () {
877
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 16, _length: 16, _match: 7 };
878
- expect(date.preparse('2015-1-1 0:0:0.0', 'YYYY-M-D H:m:s.S')).to.eql(dt);
879
- });
880
- it('YYYY-M-D H:m:s.S', function () {
881
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 59, S: 900, Z: 0, _index: 21, _length: 21, _match: 7 };
882
- expect(date.preparse('2015-12-31 23:59:59.9', 'YYYY-M-D H:m:s.S')).to.eql(dt);
883
- });
884
- it('YYYY M D H m s S', function () {
885
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 59, S: 900, Z: 0, _index: 21, _length: 21, _match: 7 };
886
- expect(date.preparse('2015-12-31 23:59:59.9', 'YYYY M D H m s S')).to.eql(dt);
887
- });
888
- it('YYYY-M-D H:m:s.S', function () {
889
- var dt = { Y: 2015, M: 0, D: 0, H: 24, A: 0, h: 0, m: 60, s: 61, S: 0, Z: 0, _index: 19, _length: 19, _match: 7 };
890
- expect(date.preparse('2015-0-0 24:60:61.0', 'YYYY-M-D H:m:s.S')).to.eql(dt);
891
- });
892
- it('YYYY-M-D H:m:s.SSS Z', function () {
893
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 22, _length: 22, _match: 8 };
894
- expect(date.preparse('2015-1-1 0:0:0.0 +0000', 'YYYY-M-D H:m:s.SSS Z')).to.eql(dt);
895
- });
896
- it('YYYY-M-D H:m:s.SSS Z', function () {
897
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 59, S: 999, Z: 840, _index: 29, _length: 29, _match: 8 };
898
- expect(date.preparse('2015-12-31 23:59:59.999 -1400', 'YYYY-M-D H:m:s.SSS Z')).to.eql(dt);
899
- });
900
- it('YYYY-M-D H:m:s.SSS Z', function () {
901
- var dt = { Y: 2015, M: 0, D: 0, H: 24, A: 0, h: 0, m: 60, s: 61, S: 0, Z: -720, _index: 27, _length: 27, _match: 8 };
902
- expect(date.preparse('2015-0-0 24:60:61.000 +1200', 'YYYY-M-D H:m:s.SSS Z')).to.eql(dt);
903
- });
904
- it('MMDDHHmmssSSS', function () {
905
- var dt = { Y: 1970, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 59, S: 999, Z: 0, _index: 13, _length: 13, _match: 6 };
906
- expect(date.preparse('1231235959999', 'MMDDHHmmssSSS')).to.eql(dt);
907
- });
908
- it('DDHHmmssSSS', function () {
909
- var dt = { Y: 1970, M: 1, D: 31, H: 23, A: 0, h: 0, m: 59, s: 59, S: 999, Z: 0, _index: 11, _length: 11, _match: 5 };
910
- expect(date.preparse('31235959999', 'DDHHmmssSSS')).to.eql(dt);
911
- });
912
- it('HHmmssSSS', function () {
913
- var dt = { Y: 1970, M: 1, D: 1, H: 23, A: 0, h: 0, m: 59, s: 59, S: 999, Z: 0, _index: 9, _length: 9, _match: 4 };
914
- expect(date.preparse('235959999', 'HHmmssSSS')).to.eql(dt);
915
- });
916
- it('mmssSSS', function () {
917
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 59, s: 59, S: 999, Z: 0, _index: 7, _length: 7, _match: 3 };
918
- expect(date.preparse('5959999', 'mmssSSS')).to.eql(dt);
919
- });
920
- it('ssSSS', function () {
921
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 59, S: 999, Z: 0, _index: 5, _length: 5, _match: 2 };
922
- expect(date.preparse('59999', 'ssSSS')).to.eql(dt);
923
- });
924
- it('SSS', function () {
925
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 999, Z: 0, _index: 3, _length: 3, _match: 1 };
926
- expect(date.preparse('999', 'SSS')).to.eql(dt);
927
- });
928
- it('Z', function () {
929
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: -355, _index: 5, _length: 5, _match: 1 };
930
- expect(date.preparse('+0555', 'Z')).to.eql(dt);
931
- });
932
- it('Z', function () {
933
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 0, _length: 5, _match: 0 };
934
- expect(date.preparse('+9999', 'Z')).to.eql(dt);
935
- });
936
- it('ZZ', function () {
937
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: -355, _index: 6, _length: 6, _match: 1 };
938
- expect(date.preparse('+05:55', 'ZZ')).to.eql(dt);
939
- });
940
- it('ZZ', function () {
941
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 0, _length: 6, _match: 0 };
942
- expect(date.preparse('+99:99', 'Z')).to.eql(dt);
943
- });
944
- it('foo', function () {
945
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 0, _length: 14, _match: 0 };
946
- expect(date.preparse('20150101235959', 'foo')).to.eql(dt);
947
- });
948
- it('bar', function () {
949
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 0, _length: 14, _match: 0 };
950
- expect(date.preparse('20150101235959', 'bar')).to.eql(dt);
951
- });
952
- it('YYYYMMDD', function () {
953
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 8, _length: 14, _match: 3 };
954
- expect(date.preparse('20150101235959', 'YYYYMMDD')).to.eql(dt);
955
- });
956
- it('20150101235959', function () {
957
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 14, _length: 14, _match: 0 };
958
- expect(date.preparse('20150101235959', '20150101235959')).to.eql(dt);
959
- });
960
- it('YYYY?M?D H?m?s?S', function () {
961
- var dt = { Y: 2015, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 4, _length: 21, _match: 1 };
962
- expect(date.preparse('2015-12-31 23:59:59.9', 'YYYY?M?D H?m?s?S')).to.eql(dt);
963
- });
964
- it('YYYY-MM-DD HH:mm:ssZ', function () {
965
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 59, S: 0, Z: 0, _index: 19, _length: 20, _match: 6 };
966
- expect(date.preparse('2015-12-31 23:59:59K', 'YYYY-MM-DD HH:mm:ss[Z]')).to.eql(dt);
967
- });
968
- it('[Y]YYYY[M]M[D]D[H]H[m]m[s]s[S]S', function () {
969
- var dt = { Y: 2015, M: 12, D: 31, H: 23, A: 0, h: 0, m: 59, s: 59, S: 900, Z: 0, _index: 22, _length: 22, _match: 7 };
970
- expect(date.preparse('Y2015M12D31H23m59s59S9', '[Y]YYYY[M]M[D]D[H]H[m]m[s]s[S]S')).to.eql(dt);
971
- });
972
- it('[Y]YYYY[M]M[D]D[H]H[m]m[s]s[S]S', function () {
973
- var dt = { Y: 2015, M: 12, D: 31, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 22, _length: 22, _match: 3 };
974
- expect(date.preparse('Y2015M12D31H23m59s59S9', '[Y]YYYY[M]M[D]D...')).to.eql(dt);
975
- });
976
- it('[[Y]YYYY[M]MM[D]DD[H]HH[m]mm[s]ss[S]S]', function () {
977
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 36, _length: 36, _match: 0 };
978
- expect(date.preparse('[Y]YYYY[M]MM[D]DD[H]HH[m]mm[s]ss[S]S', '[[Y]YYYY[M]MM[D]DD[H]HH[m]mm[s]ss[S]S]')).to.eql(dt);
979
- });
980
- it('[[Y]YYYY[M]MM[D]DD[H]HH[m]mm[s]ss[S]S]', function () {
981
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 0, _length: 36, _match: 0 };
982
- expect(date.preparse('[Y]2015[M]12[D]31[H]23[m]59[s]59[S]9', '[[Y]YYYY[M]MM[D]DD[H]HH[m]mm[s]ss[S]S]')).to.eql(dt);
983
- });
984
- it(' ', function () {
985
- var dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 17, _length: 17, _match: 0 };
986
- expect(date.preparse('20151231235959900', ' ')).to.eql(dt);
987
- });
988
- });
989
-
990
- describe('parse', function () {
991
- it('YYYY', function () {
992
- expect(isNaN(date.parse('0000', 'YYYY'))).to.be(true);
993
- });
994
- it('YYYY', function () {
995
- var now = new Date(0, -1899 * 12, 1);
996
- expect(date.parse('0001', 'YYYY')).to.eql(now);
997
- });
998
- it('YYYY', function () {
999
- var now = new Date(0, -1801 * 12, 1);
1000
- expect(date.parse('0099', 'YYYY')).to.eql(now);
1001
- });
1002
- it('YYYY', function () {
1003
- var now = new Date(100, 0, 1);
1004
- expect(date.parse('0100', 'YYYY')).to.eql(now);
1005
- });
1006
- it('YYYY', function () {
1007
- var now = new Date(1899, 0, 1);
1008
- expect(date.parse('1899', 'YYYY')).to.eql(now);
1009
- });
1010
- it('YYYY', function () {
1011
- var now = new Date(1900, 0, 1);
1012
- expect(date.parse('1900', 'YYYY')).to.eql(now);
1013
- });
1014
- it('YYYY', function () {
1015
- var now = new Date(1969, 0, 1);
1016
- expect(date.parse('1969', 'YYYY')).to.eql(now);
1017
- });
1018
- it('YYYY', function () {
1019
- var now = new Date(1970, 0, 1);
1020
- expect(date.parse('1970', 'YYYY')).to.eql(now);
1021
- });
1022
- it('YYYY', function () {
1023
- var now = new Date(1999, 0, 1);
1024
- expect(date.parse('1999', 'YYYY')).to.eql(now);
1025
- });
1026
- it('YYYY', function () {
1027
- var now = new Date(2000, 0, 1);
1028
- expect(date.parse('2000', 'YYYY')).to.eql(now);
1029
- });
1030
- it('YYYY', function () {
1031
- var now = new Date(9999, 0, 1);
1032
- expect(date.parse('9999', 'YYYY')).to.eql(now);
1033
- });
1034
- it('Y', function () {
1035
- expect(isNaN(date.parse('0', 'Y'))).to.be(true);
1036
- });
1037
- it('Y', function () {
1038
- var now = new Date(0, -1899 * 12, 1);
1039
- expect(date.parse('1', 'Y')).to.eql(now);
1040
- });
1041
- it('Y', function () {
1042
- var now = new Date(0, -1801 * 12, 1);
1043
- expect(date.parse('99', 'Y')).to.eql(now);
1044
- });
1045
- it('Y', function () {
1046
- var now = new Date(100, 0, 1);
1047
- expect(date.parse('100', 'Y')).to.eql(now);
1048
- });
1049
- it('YYYY MMMM', function () {
1050
- var now = new Date(2015, 0, 1);
1051
- expect(date.parse('2015 January', 'YYYY MMMM')).to.eql(now);
1052
- });
1053
- it('YYYY MMMM', function () {
1054
- var now = new Date(2015, 11, 1);
1055
- expect(date.parse('2015 December', 'YYYY MMMM')).to.eql(now);
1056
- });
1057
- it('YYYY MMMM', function () {
1058
- expect(isNaN(date.parse('2015 Zero', 'YYYY MMMM'))).to.be(true);
1059
- });
1060
- it('YYYY MMM', function () {
1061
- var now = new Date(2015, 0, 1);
1062
- expect(date.parse('2015 Jan', 'YYYY MMM')).to.eql(now);
1063
- });
1064
- it('YYYY MMM', function () {
1065
- var now = new Date(2015, 11, 1);
1066
- expect(date.parse('2015 Dec', 'YYYY MMM')).to.eql(now);
1067
- });
1068
- it('YYYY MMM', function () {
1069
- expect(isNaN(date.parse('2015 Zero', 'YYYY MMM'))).to.be(true);
1070
- });
1071
- it('YYYY-MM', function () {
1072
- var now = new Date(2015, 0, 1);
1073
- expect(date.parse('2015-01', 'YYYY-MM')).to.eql(now);
1074
- });
1075
- it('YYYY-MM', function () {
1076
- var now = new Date(2015, 11, 1);
1077
- expect(date.parse('2015-12', 'YYYY-MM')).to.eql(now);
1078
- });
1079
- it('YYYY-MM', function () {
1080
- expect(isNaN(date.parse('2015-00', 'YYYY-MM'))).to.be(true);
1081
- });
1082
- it('YYYY-M', function () {
1083
- var now = new Date(2015, 0, 1);
1084
- expect(date.parse('2015-1', 'YYYY-M')).to.eql(now);
1085
- });
1086
- it('YYYY-M', function () {
1087
- var now = new Date(2015, 11, 1);
1088
- expect(date.parse('2015-12', 'YYYY-M')).to.eql(now);
1089
- });
1090
- it('YYYY-M', function () {
1091
- expect(isNaN(date.parse('2015-0', 'YYYY-M'))).to.be(true);
1092
- });
1093
- it('YYYY-MM-DD', function () {
1094
- var now = new Date(2015, 0, 1);
1095
- expect(date.parse('2015-01-01', 'YYYY-MM-DD')).to.eql(now);
1096
- });
1097
- it('YYYY-MM-DD', function () {
1098
- var now = new Date(2015, 11, 31);
1099
- expect(date.parse('2015-12-31', 'YYYY-MM-DD')).to.eql(now);
1100
- });
1101
- it('YYYY-MM-DD', function () {
1102
- expect(isNaN(date.parse('2015-00-00', 'YYYY-MM-DD'))).to.be(true);
1103
- });
1104
- it('YYYY-M-D', function () {
1105
- var now = new Date(2015, 0, 1);
1106
- expect(date.parse('2015-1-1', 'YYYY-M-D')).to.eql(now);
1107
- });
1108
- it('YYYY-M-D', function () {
1109
- var now = new Date(2015, 11, 31);
1110
- expect(date.parse('2015-12-31', 'YYYY-M-D')).to.eql(now);
1111
- });
1112
- it('YYYY-M-D', function () {
1113
- expect(isNaN(date.parse('2015-0-0', 'YYYY-M-D'))).to.be(true);
1114
- });
1115
- it('YYYY-MM-DD HH', function () {
1116
- var now = new Date(2015, 0, 1, 0);
1117
- expect(date.parse('2015-01-01 00', 'YYYY-MM-DD HH')).to.eql(now);
1118
- });
1119
- it('YYYY-MM-DD HH', function () {
1120
- var now = new Date(2015, 11, 31, 23);
1121
- expect(date.parse('2015-12-31 23', 'YYYY-MM-DD HH')).to.eql(now);
1122
- });
1123
- it('YYYY-MM-DD HH', function () {
1124
- expect(isNaN(date.parse('2015-00-00 24', 'YYYY-MM-DD HH'))).to.be(true);
1125
- });
1126
- it('YYYY-M-D H', function () {
1127
- var now = new Date(2015, 0, 1, 0);
1128
- expect(date.parse('2015-1-1 0', 'YYYY-M-D H')).to.eql(now);
1129
- });
1130
- it('YYYY-M-D H', function () {
1131
- var now = new Date(2015, 11, 31, 23);
1132
- expect(date.parse('2015-12-31 23', 'YYYY-M-D H')).to.eql(now);
1133
- });
1134
- it('YYYY-M-D H', function () {
1135
- expect(isNaN(date.parse('2015-0-0 24', 'YYYY-M-D H'))).to.be(true);
1136
- });
1137
- it('YYYY-M-D hh A', function () {
1138
- var now = new Date(2015, 0, 1, 0);
1139
- expect(date.parse('2015-1-1 12 AM', 'YYYY-M-D hh A')).to.eql(now);
1140
- });
1141
- it('YYYY-M-D hh A', function () {
1142
- var now = new Date(2015, 11, 31, 23);
1143
- expect(date.parse('2015-12-31 11 PM', 'YYYY-M-D hh A')).to.eql(now);
1144
- });
1145
- it('YYYY-M-D hh A', function () {
1146
- expect(isNaN(date.parse('2015-0-0 12 AM', 'YYYY-M-D hh A'))).to.be(true);
1147
- });
1148
- it('YYYY-M-D h A', function () {
1149
- var now = new Date(2015, 0, 1, 0);
1150
- expect(date.parse('2015-1-1 12 AM', 'YYYY-M-D h A')).to.eql(now);
1151
- });
1152
- it('YYYY-M-D h A', function () {
1153
- var now = new Date(2015, 11, 31, 23);
1154
- expect(date.parse('2015-12-31 11 PM', 'YYYY-M-D h A')).to.eql(now);
1155
- });
1156
- it('YYYY-M-D h A', function () {
1157
- expect(isNaN(date.parse('2015-0-0 12 AM', 'YYYY-M-D h A'))).to.be(true);
1158
- });
1159
- it('YYYY-MM-DD HH:mm', function () {
1160
- var now = new Date(2015, 0, 1, 0, 0);
1161
- expect(date.parse('2015-01-01 00:00', 'YYYY-MM-DD HH:mm')).to.eql(now);
1162
- });
1163
- it('YYYY-MM-DD HH:mm', function () {
1164
- var now = new Date(2015, 11, 31, 23, 59);
1165
- expect(date.parse('2015-12-31 23:59', 'YYYY-MM-DD HH:mm')).to.eql(now);
1166
- });
1167
- it('YYYY-MM-DD HH:mm', function () {
1168
- expect(isNaN(date.parse('2015-00-00 24:60', 'YYYY-MM-DD HH:mm'))).to.be(true);
1169
- });
1170
- it('YYYY-M-D H:m', function () {
1171
- var now = new Date(2015, 0, 1, 0, 0);
1172
- expect(date.parse('2015-1-1 0:0', 'YYYY-M-D H:m')).to.eql(now);
1173
- });
1174
- it('YYYY-M-D H:m', function () {
1175
- var now = new Date(2015, 11, 31, 23, 59);
1176
- expect(date.parse('2015-12-31 23:59', 'YYYY-M-D H:m')).to.eql(now);
1177
- });
1178
- it('YYYY-M-D H:m', function () {
1179
- expect(isNaN(date.parse('2015-0-0 24:60', 'YYYY-M-D H:m'))).to.be(true);
1180
- });
1181
- it('YYYY-MM-DD HH:mm:ss', function () {
1182
- var now = new Date(2015, 0, 1, 0, 0, 0);
1183
- expect(date.parse('2015-01-01 00:00:00', 'YYYY-MM-DD HH:mm:ss')).to.eql(now);
1184
- });
1185
- it('YYYY-MM-DD HH:mm:ss', function () {
1186
- var now = new Date(2015, 11, 31, 23, 59, 59);
1187
- expect(date.parse('2015-12-31 23:59:59', 'YYYY-MM-DD HH:mm:ss')).to.eql(now);
1188
- });
1189
- it('YYYY-MM-DD HH:mm:ss', function () {
1190
- expect(isNaN(date.parse('2015-00-00 24:60:60', 'YYYY-MM-DD HH:mm:ss'))).to.be(true);
1191
- });
1192
- it('YYYY-M-D H:m:s', function () {
1193
- var now = new Date(2015, 0, 1, 0, 0);
1194
- expect(date.parse('2015-1-1 0:0:0', 'YYYY-M-D H:m:s')).to.eql(now);
1195
- });
1196
- it('YYYY-M-D H:m:s', function () {
1197
- var now = new Date(2015, 11, 31, 23, 59, 59);
1198
- expect(date.parse('2015-12-31 23:59:59', 'YYYY-M-D H:m:s')).to.eql(now);
1199
- });
1200
- it('YYYY-M-D H:m:s', function () {
1201
- expect(isNaN(date.parse('2015-0-0 24:60:60', 'YYYY-M-D H:m:s'))).to.be(true);
1202
- });
1203
- it('YYYY-M-D H:m:s.SSS', function () {
1204
- var now = new Date(2015, 0, 1, 0, 0, 0);
1205
- expect(date.parse('2015-1-1 0:0:0.0', 'YYYY-M-D H:m:s.SSS')).to.eql(now);
1206
- });
1207
- it('YYYY-M-D H:m:s.SSS', function () {
1208
- var now = new Date(2015, 11, 31, 23, 59, 59, 999);
1209
- expect(date.parse('2015-12-31 23:59:59.999', 'YYYY-M-D H:m:s.SSS')).to.eql(now);
1210
- });
1211
- it('YYYY-M-D H:m:s.SSS', function () {
1212
- expect(isNaN(date.parse('2015-0-0 24:60:61.000', 'YYYY-M-D H:m:s.SSS'))).to.be(true);
1213
- });
1214
- it('YYYY-M-D H:m:s.SS', function () {
1215
- var now = new Date(2015, 0, 1, 0, 0, 0);
1216
- expect(date.parse('2015-1-1 0:0:0.0', 'YYYY-M-D H:m:s.SS')).to.eql(now);
1217
- });
1218
- it('YYYY-M-D H:m:s.SS', function () {
1219
- var now = new Date(2015, 11, 31, 23, 59, 59, 990);
1220
- expect(date.parse('2015-12-31 23:59:59.99', 'YYYY-M-D H:m:s.SS')).to.eql(now);
1221
- });
1222
- it('YYYY-M-D H:m:s.SS', function () {
1223
- expect(isNaN(date.parse('2015-0-0 24:60:61.00', 'YYYY-M-D H:m:s.SS'))).to.be(true);
1224
- });
1225
- it('YYYY-M-D H:m:s.S', function () {
1226
- var now = new Date(2015, 0, 1, 0, 0, 0);
1227
- expect(date.parse('2015-1-1 0:0:0.0', 'YYYY-M-D H:m:s.S')).to.eql(now);
1228
- });
1229
- it('YYYY-M-D H:m:s.S', function () {
1230
- var now = new Date(2015, 11, 31, 23, 59, 59, 900);
1231
- expect(date.parse('2015-12-31 23:59:59.9', 'YYYY-M-D H:m:s.S')).to.eql(now);
1232
- });
1233
- it('YYYY M D H m s S', function () {
1234
- var now = new Date(2015, 11, 31, 23, 59, 59, 900);
1235
- expect(date.parse('2015-12-31 23:59:59.9', 'YYYY M D H m s S')).to.eql(now);
1236
- });
1237
- it('YYYY-M-D H:m:s.S', function () {
1238
- expect(isNaN(date.parse('2015-0-0 24:60:61.0', 'YYYY-M-D H:m:s.S'))).to.be(true);
1239
- });
1240
- it('YYYY-M-D H:m:s.SSS Z', function () {
1241
- var now = new Date(Date.UTC(2015, 0, 1, 0, 0, 0));
1242
- expect(date.parse('2015-1-1 0:0:0.0 +0000', 'YYYY-M-D H:m:s.SSS Z')).to.eql(now);
1243
- });
1244
- it('YYYY-M-D H:m:s.SSS Z', function () {
1245
- var now = new Date(Date.UTC(2015, 11, 31, 23, 59, 59, 999));
1246
- expect(date.parse('2015-12-31 23:00:59.999 -0059', 'YYYY-M-D H:m:s.SSS Z')).to.eql(now);
1247
- });
1248
- it('YYYY-M-D H:m:s.SSS Z', function () {
1249
- var now = new Date(Date.UTC(2015, 11, 31, 21, 59, 59, 999));
1250
- expect(date.parse('2015-12-31 09:59:59.999 -1200', 'YYYY-M-D H:m:s.SSS Z')).to.eql(now);
1251
- });
1252
- it('YYYY-M-D H:m:s.SSS Z', function () {
1253
- expect(isNaN(date.parse('2015-12-31 09:58:59.999 -1201', 'YYYY-M-D H:m:s.SSS Z'))).to.be(true);
1254
- });
1255
- it('YYYY-M-D H:m:s.SSS Z', function () {
1256
- var now = new Date(Date.UTC(2015, 11, 30, 22, 0, 59, 999));
1257
- expect(date.parse('2015-12-31 12:00:59.999 +1400', 'YYYY-M-D H:m:s.SSS Z')).to.eql(now);
1258
- });
1259
- it('YYYY-M-D H:m:s.SSS Z', function () {
1260
- expect(isNaN(date.parse('2015-12-31 12:01:59.999 +1401', 'YYYY-M-D H:m:s.SSS Z'))).to.be(true);
1261
- });
1262
- it('YYYY-M-D H:m:s.SSS ZZ', function () {
1263
- var now = new Date(Date.UTC(2015, 0, 1, 0, 0, 0));
1264
- expect(date.parse('2015-1-1 0:0:0.0 +00:00', 'YYYY-M-D H:m:s.SSS ZZ')).to.eql(now);
1265
- });
1266
- it('YYYY-M-D H:m:s.SSS ZZ', function () {
1267
- var now = new Date(Date.UTC(2015, 11, 31, 23, 59, 59, 999));
1268
- expect(date.parse('2015-12-31 23:00:59.999 -00:59', 'YYYY-M-D H:m:s.SSS ZZ')).to.eql(now);
1269
- });
1270
- it('YYYY-M-D H:m:s.SSS ZZ', function () {
1271
- var now = new Date(Date.UTC(2015, 11, 31, 21, 59, 59, 999));
1272
- expect(date.parse('2015-12-31 09:59:59.999 -12:00', 'YYYY-M-D H:m:s.SSS ZZ')).to.eql(now);
1273
- });
1274
- it('YYYY-M-D H:m:s.SSS ZZ', function () {
1275
- expect(isNaN(date.parse('2015-12-31 09:58:59.999 -12:01', 'YYYY-M-D H:m:s.SSS ZZ'))).to.be(true);
1276
- });
1277
- it('YYYY-M-D H:m:s.SSS ZZ', function () {
1278
- var now = new Date(Date.UTC(2015, 11, 30, 22, 0, 59, 999));
1279
- expect(date.parse('2015-12-31 12:00:59.999 +14:00', 'YYYY-M-D H:m:s.SSS ZZ')).to.eql(now);
1280
- });
1281
- it('YYYY-M-D H:m:s.SSS ZZ', function () {
1282
- expect(isNaN(date.parse('2015-12-31 12:01:59.999 +14:01', 'YYYY-M-D H:m:s.SSS ZZ'))).to.be(true);
1283
- });
1284
- it('MMDDHHmmssSSS', function () {
1285
- var now = new Date(1970, 11, 31, 23, 59, 59, 999);
1286
- expect(date.parse('1231235959999', 'MMDDHHmmssSSS')).to.eql(now);
1287
- });
1288
- it('DDHHmmssSSS', function () {
1289
- var now = new Date(1970, 0, 31, 23, 59, 59, 999);
1290
- expect(date.parse('31235959999', 'DDHHmmssSSS')).to.eql(now);
1291
- });
1292
- it('HHmmssSSS', function () {
1293
- var now = new Date(1970, 0, 1, 23, 59, 59, 999);
1294
- expect(date.parse('235959999', 'HHmmssSSS')).to.eql(now);
1295
- });
1296
- it('mmssSSS', function () {
1297
- var now = new Date(1970, 0, 1, 0, 59, 59, 999);
1298
- expect(date.parse('5959999', 'mmssSSS')).to.eql(now);
1299
- });
1300
- it('ssSSS', function () {
1301
- var now = new Date(1970, 0, 1, 0, 0, 59, 999);
1302
- expect(date.parse('59999', 'ssSSS')).to.eql(now);
1303
- });
1304
- it('SSS', function () {
1305
- var now = new Date(1970, 0, 1, 0, 0, 0, 999);
1306
- expect(date.parse('999', 'SSS')).to.eql(now);
1307
- });
1308
- it('Z', function () {
1309
- expect(isNaN(date.parse('+000', 'Z'))).to.be(true);
1310
- });
1311
- it('Z', function () {
1312
- expect(isNaN(date.parse('+00', 'Z'))).to.be(true);
1313
- });
1314
- it('Z', function () {
1315
- expect(isNaN(date.parse('+0', 'Z'))).to.be(true);
1316
- });
1317
- it('Z', function () {
1318
- expect(isNaN(date.parse('0', 'Z'))).to.be(true);
1319
- });
1320
- it('Z', function () {
1321
- expect(isNaN(date.parse('0000', 'Z'))).to.be(true);
1322
- });
1323
- it('Z', function () {
1324
- expect(isNaN(date.parse('00000', 'Z'))).to.be(true);
1325
- });
1326
- it('ZZ', function () {
1327
- expect(isNaN(date.parse('+00:0', 'ZZ'))).to.be(true);
1328
- });
1329
- it('ZZ', function () {
1330
- expect(isNaN(date.parse('+00:', 'ZZ'))).to.be(true);
1331
- });
1332
- it('ZZ', function () {
1333
- expect(isNaN(date.parse('+0:', 'ZZ'))).to.be(true);
1334
- });
1335
- it('ZZ', function () {
1336
- expect(isNaN(date.parse('0:', 'ZZ'))).to.be(true);
1337
- });
1338
- it('ZZ', function () {
1339
- expect(isNaN(date.parse('00:00', 'ZZ'))).to.be(true);
1340
- });
1341
- it('ZZ', function () {
1342
- expect(isNaN(date.parse('00:000', 'ZZ'))).to.be(true);
1343
- });
1344
- it('foo', function () {
1345
- expect(isNaN(date.parse('20150101235959', 'foo'))).to.be(true);
1346
- });
1347
- it('bar', function () {
1348
- expect(isNaN(date.parse('20150101235959', 'bar'))).to.be(true);
1349
- });
1350
- it('YYYYMMDD', function () {
1351
- expect(isNaN(date.parse('20150101235959', 'YYYYMMDD'))).to.be(true);
1352
- });
1353
- it('20150101235959', function () {
1354
- expect(isNaN(date.parse('20150101235959', '20150101235959'))).to.be(true);
1355
- });
1356
- it('YYYY?M?D H?m?s?S', function () {
1357
- expect(isNaN(date.parse('2015-12-31 23:59:59.9', 'YYYY?M?D H?m?s?S'))).to.be(true);
1358
- });
1359
- it('[Y]YYYY[M]M[D]D[H]H[m]m[s]s[S]S', function () {
1360
- var now = new Date(2015, 11, 31, 23, 59, 59, 900);
1361
- expect(date.parse('Y2015M12D31H23m59s59S9', '[Y]YYYY[M]M[D]D[H]H[m]m[s]s[S]S')).to.eql(now);
1362
- });
1363
- it('[[Y]YYYY[M]MM[D]DD[H]HH[m]mm[s]ss[S]S]', function () {
1364
- expect(isNaN(date.parse('[Y]2015[M]12[D]31[H]23[m]59[s]59[S]9', '[[Y]YYYY[M]MM[D]DD[H]HH[m]mm[s]ss[S]S]'))).to.be(true);
1365
- });
1366
- it(' ', function () {
1367
- expect(isNaN(date.parse('20151231235959900', ' '))).to.be(true);
1368
- });
1369
- });
1370
-
1371
- describe('transform', function () {
1372
- it('D/M/YYYY => M/D/YYYY', function () {
1373
- expect(date.transform('3/8/2020', 'D/M/YYYY', 'M/D/YYYY')).to.eql('8/3/2020');
1374
- });
1375
- it('HH:mm => hh:mm A', function () {
1376
- expect(date.transform('13:05', 'HH:mm', 'hh:mm A')).to.eql('01:05 PM');
1377
- });
1378
- it('HH:mm => hh:mm A, output as UTC', function () {
1379
- var utc = date.format(new Date(2020, 3, 1, 13, 5), 'hh:mm A', true);
1380
- expect(date.transform('13:05', 'HH:mm', 'hh:mm A', true)).to.eql(utc);
1381
- });
1382
- it('D/M/YYYY => M/D/YYYY, with compile', function () {
1383
- var arg1 = date.compile('D/M/YYYY');
1384
- var arg2 = date.compile('M/D/YYYY');
1385
- expect(date.transform('3/8/2020', arg1, arg2)).to.eql('8/3/2020');
1386
- });
1387
- });
1388
-
1389
- describe('addition', function () {
1390
- it('add a year', function () {
1391
- var date1 = new Date(1969, 11, 31, 23, 59, 59, 999);
1392
- var date2 = new Date(1970, 11, 31, 23, 59, 59, 999);
1393
- expect(date.addYears(date1, 1, true)).to.eql(date2);
1394
- });
1395
- it('subtract a year', function () {
1396
- var date1 = new Date(1970, 11, 31, 23, 59, 59, 999);
1397
- var date2 = new Date(1969, 11, 31, 23, 59, 59, 999);
1398
- expect(date.addYears(date1, -1, true)).to.eql(date2);
1399
- });
1400
- it('add a month', function () {
1401
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1402
- var date2 = new Date(2014, 12, 31, 23, 59, 59, 999);
1403
- expect(date.addMonths(date1, 1, true)).to.eql(date2);
1404
- });
1405
- it('subtract a month', function () {
1406
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1407
- var date2 = new Date(2014, 10, 31, 23, 59, 59, 999);
1408
- expect(date.addMonths(date1, -1, true)).to.eql(date2);
1409
- });
1410
- it('add a day', function () {
1411
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1412
- var date2 = new Date(2014, 11, 32, 23, 59, 59, 999);
1413
- expect(date.addDays(date1, 1, true)).to.eql(date2);
1414
- });
1415
- it('subtract a day', function () {
1416
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1417
- var date2 = new Date(2014, 11, 30, 23, 59, 59, 999);
1418
- expect(date.addDays(date1, -1, true)).to.eql(date2);
1419
- });
1420
- it('add an hour', function () {
1421
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1422
- var date2 = new Date(2014, 11, 31, 24, 59, 59, 999);
1423
- expect(date.addHours(date1, 1, true)).to.eql(date2);
1424
- });
1425
- it('subtract an hour', function () {
1426
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1427
- var date2 = new Date(2014, 11, 31, 22, 59, 59, 999);
1428
- expect(date.addHours(date1, -1, true)).to.eql(date2);
1429
- });
1430
- it('add a minute', function () {
1431
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1432
- var date2 = new Date(2014, 11, 31, 23, 60, 59, 999);
1433
- expect(date.addMinutes(date1, 1, true)).to.eql(date2);
1434
- });
1435
- it('subtract a minute', function () {
1436
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1437
- var date2 = new Date(2014, 11, 31, 23, 58, 59, 999);
1438
- expect(date.addMinutes(date1, -1, true)).to.eql(date2);
1439
- });
1440
- it('add a second', function () {
1441
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1442
- var date2 = new Date(2014, 11, 31, 23, 59, 60, 999);
1443
- expect(date.addSeconds(date1, 1, true)).to.eql(date2);
1444
- });
1445
- it('subtract a second', function () {
1446
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1447
- var date2 = new Date(2014, 11, 31, 23, 59, 58, 999);
1448
- expect(date.addSeconds(date1, -1, true)).to.eql(date2);
1449
- });
1450
- it('add a millisecond', function () {
1451
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1452
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 1000);
1453
- expect(date.addMilliseconds(date1, 1, true)).to.eql(date2);
1454
- });
1455
- it('subtract a millisecond', function () {
1456
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1457
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 998);
1458
- expect(date.addMilliseconds(date1, -1, true)).to.eql(date2);
1459
- });
1460
- });
1461
-
1462
- describe('subtraction', function () {
1463
- it('A year is 365 days', function () {
1464
- var date1 = new Date(2015, 11, 31, 23, 59, 59, 999);
1465
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1466
- expect(date.subtract(date1, date2).toDays()).to.equal(365);
1467
- expect(date.subtract(date1, date2).toHours()).to.equal(365 * 24);
1468
- expect(date.subtract(date1, date2).toMinutes()).to.equal(365 * 24 * 60);
1469
- expect(date.subtract(date1, date2).toSeconds()).to.equal(365 * 24 * 60 * 60);
1470
- expect(date.subtract(date1, date2).toMilliseconds()).to.equal(365 * 24 * 60 * 60 * 1000);
1471
- });
1472
- it('A year is 365 days (reverse)', function () {
1473
- var date1 = new Date(2015, 11, 31, 23, 59, 59, 999);
1474
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1475
- expect(date.subtract(date2, date1).toDays()).to.equal(-365);
1476
- expect(date.subtract(date2, date1).toHours()).to.equal(-365 * 24);
1477
- expect(date.subtract(date2, date1).toMinutes()).to.equal(-365 * 24 * 60);
1478
- expect(date.subtract(date2, date1).toSeconds()).to.equal(-365 * 24 * 60 * 60);
1479
- expect(date.subtract(date2, date1).toMilliseconds()).to.equal(-365 * 24 * 60 * 60 * 1000);
1480
- });
1481
- it('A month is 31 days', function () {
1482
- var date1 = new Date(2014, 12, 31, 23, 59, 59, 999);
1483
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1484
- expect(date.subtract(date1, date2).toDays()).to.equal(31);
1485
- expect(date.subtract(date1, date2).toHours()).to.equal(31 * 24);
1486
- expect(date.subtract(date1, date2).toMinutes()).to.equal(31 * 24 * 60);
1487
- expect(date.subtract(date1, date2).toSeconds()).to.equal(31 * 24 * 60 * 60);
1488
- expect(date.subtract(date1, date2).toMilliseconds()).to.equal(31 * 24 * 60 * 60 * 1000);
1489
- });
1490
- it('A month is 31 days (reverse)', function () {
1491
- var date1 = new Date(2014, 12, 31, 23, 59, 59, 999);
1492
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1493
- expect(date.subtract(date2, date1).toDays()).to.equal(-31);
1494
- expect(date.subtract(date2, date1).toHours()).to.equal(-31 * 24);
1495
- expect(date.subtract(date2, date1).toMinutes()).to.equal(-31 * 24 * 60);
1496
- expect(date.subtract(date2, date1).toSeconds()).to.equal(-31 * 24 * 60 * 60);
1497
- expect(date.subtract(date2, date1).toMilliseconds()).to.equal(-31 * 24 * 60 * 60 * 1000);
1498
- });
1499
- it('A day', function () {
1500
- var date1 = new Date(2014, 11, 32, 23, 59, 59, 999);
1501
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1502
- expect(date.subtract(date1, date2).toDays()).to.equal(1);
1503
- expect(date.subtract(date1, date2).toHours()).to.equal(24);
1504
- expect(date.subtract(date1, date2).toMinutes()).to.equal(24 * 60);
1505
- expect(date.subtract(date1, date2).toSeconds()).to.equal(24 * 60 * 60);
1506
- expect(date.subtract(date1, date2).toMilliseconds()).to.equal(24 * 60 * 60 * 1000);
1507
- });
1508
- it('A day (reverse)', function () {
1509
- var date1 = new Date(2014, 11, 32, 23, 59, 59, 999);
1510
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1511
- expect(date.subtract(date2, date1).toDays()).to.equal(-1);
1512
- expect(date.subtract(date2, date1).toHours()).to.equal(-1 * 24);
1513
- expect(date.subtract(date2, date1).toMinutes()).to.equal(-1 * 24 * 60);
1514
- expect(date.subtract(date2, date1).toSeconds()).to.equal(-1 * 24 * 60 * 60);
1515
- expect(date.subtract(date2, date1).toMilliseconds()).to.equal(-1 * 24 * 60 * 60 * 1000);
1516
- });
1517
- it('An hour', function () {
1518
- var date1 = new Date(2014, 11, 31, 24, 59, 59, 999);
1519
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1520
- expect(date.subtract(date1, date2).toDays()).to.equal(1 / 24);
1521
- expect(date.subtract(date1, date2).toHours()).to.equal(1);
1522
- expect(date.subtract(date1, date2).toMinutes()).to.equal(60);
1523
- expect(date.subtract(date1, date2).toSeconds()).to.equal(60 * 60);
1524
- expect(date.subtract(date1, date2).toMilliseconds()).to.equal(60 * 60 * 1000);
1525
- });
1526
- it('An hour (reverse)', function () {
1527
- var date1 = new Date(2014, 11, 31, 24, 59, 59, 999);
1528
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1529
- expect(date.subtract(date2, date1).toDays()).to.equal(-1 / 24);
1530
- expect(date.subtract(date2, date1).toHours()).to.equal(-1);
1531
- expect(date.subtract(date2, date1).toMinutes()).to.equal(-1 * 60);
1532
- expect(date.subtract(date2, date1).toSeconds()).to.equal(-1 * 60 * 60);
1533
- expect(date.subtract(date2, date1).toMilliseconds()).to.equal(-1 * 60 * 60 * 1000);
1534
- });
1535
- it('A minute', function () {
1536
- var date1 = new Date(2014, 11, 31, 23, 60, 59, 999);
1537
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1538
- expect(date.subtract(date1, date2).toDays()).to.equal(1 / (24 * 60));
1539
- expect(date.subtract(date1, date2).toHours()).to.equal(1 / 60);
1540
- expect(date.subtract(date1, date2).toMinutes()).to.equal(1);
1541
- expect(date.subtract(date1, date2).toSeconds()).to.equal(60);
1542
- expect(date.subtract(date1, date2).toMilliseconds()).to.equal(60 * 1000);
1543
- });
1544
- it('A minute (reverse)', function () {
1545
- var date1 = new Date(2014, 11, 31, 23, 60, 59, 999);
1546
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1547
- expect(date.subtract(date2, date1).toDays()).to.equal(-1 / (24 * 60));
1548
- expect(date.subtract(date2, date1).toHours()).to.equal(-1 / 60);
1549
- expect(date.subtract(date2, date1).toMinutes()).to.equal(-1);
1550
- expect(date.subtract(date2, date1).toSeconds()).to.equal(-1 * 60);
1551
- expect(date.subtract(date2, date1).toMilliseconds()).to.equal(-1 * 60 * 1000);
1552
- });
1553
- it('A second', function () {
1554
- var date1 = new Date(2014, 11, 31, 23, 59, 60, 999);
1555
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1556
- expect(date.subtract(date1, date2).toDays()).to.equal(1 / (24 * 60 * 60));
1557
- expect(date.subtract(date1, date2).toHours()).to.equal(1 / (60 * 60));
1558
- expect(date.subtract(date1, date2).toMinutes()).to.equal(1 / 60);
1559
- expect(date.subtract(date1, date2).toSeconds()).to.equal(1);
1560
- expect(date.subtract(date1, date2).toMilliseconds()).to.equal(1000);
1561
- });
1562
- it('A second (reverse)', function () {
1563
- var date1 = new Date(2014, 11, 31, 23, 59, 60, 999);
1564
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 999);
1565
- expect(date.subtract(date2, date1).toDays()).to.equal(-1 / (24 * 60 * 60));
1566
- expect(date.subtract(date2, date1).toHours()).to.equal(-1 / (60 * 60));
1567
- expect(date.subtract(date2, date1).toMinutes()).to.equal(-1 / 60);
1568
- expect(date.subtract(date2, date1).toSeconds()).to.equal(-1);
1569
- expect(date.subtract(date2, date1).toMilliseconds()).to.equal(-1 * 1000);
1570
- });
1571
- it('A millisecond', function () {
1572
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1573
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 998);
1574
- expect(date.subtract(date1, date2).toDays()).to.equal(1 / (24 * 60 * 60 * 1000));
1575
- expect(date.subtract(date1, date2).toHours()).to.equal(1 / (60 * 60 * 1000));
1576
- expect(date.subtract(date1, date2).toMinutes()).to.equal(1 / (60 * 1000));
1577
- expect(date.subtract(date1, date2).toSeconds()).to.equal(1 / 1000);
1578
- expect(date.subtract(date1, date2).toMilliseconds()).to.equal(1);
1579
- });
1580
- it('A millisecond (reverse)', function () {
1581
- var date1 = new Date(2014, 11, 31, 23, 59, 59, 999);
1582
- var date2 = new Date(2014, 11, 31, 23, 59, 59, 998);
1583
- expect(date.subtract(date2, date1).toDays()).to.equal(-1 / (24 * 60 * 60 * 1000));
1584
- expect(date.subtract(date2, date1).toHours()).to.equal(-1 / (60 * 60 * 1000));
1585
- expect(date.subtract(date2, date1).toMinutes()).to.equal(-1 / (60 * 1000));
1586
- expect(date.subtract(date2, date1).toSeconds()).to.equal(-1 / 1000);
1587
- expect(date.subtract(date2, date1).toMilliseconds()).to.equal(-1);
1588
- });
1589
- });
1590
-
1591
- describe('validation', function () {
1592
- it('2014-12-31 12:34:56.789 is valid', function () {
1593
- expect(date.isValid('20141231123456789', 'YYYYMMDDHHmmssSSS')).to.be(true);
1594
- });
1595
- it('2012-2-29 is valid', function () {
1596
- expect(date.isValid('2012-2-29', 'YYYY-M-D')).to.be(true);
1597
- });
1598
- it('2100-2-29 is invalid', function () {
1599
- expect(date.isValid('2100-2-29', 'YYYY-M-D')).to.be(false);
1600
- });
1601
- it('2000-2-29 is valid', function () {
1602
- expect(date.isValid('2000-2-29', 'YYYY-M-D')).to.be(true);
1603
- });
1604
- it('2014-2-29 is invalid', function () {
1605
- expect(date.isValid('2014-2-29', 'YYYY-M-D')).to.be(false);
1606
- });
1607
- it('2014-2-28 is valid', function () {
1608
- expect(date.isValid('2014-2-28', 'YYYY-M-D')).to.be(true);
1609
- });
1610
- it('2014-4-31 is invalid', function () {
1611
- expect(date.isValid('2014-4-31', 'YYYY-M-D')).to.be(false);
1612
- });
1613
- it('24:00 is invalid', function () {
1614
- expect(date.isValid('2014-4-30 24:00', 'YYYY-M-D H:m')).to.be(false);
1615
- });
1616
- it('13:00 PM is invalid', function () {
1617
- expect(date.isValid('2014-4-30 13:00 PM', 'YYYY-M-D h:m A')).to.be(false);
1618
- });
1619
- it('23:60 is invalid', function () {
1620
- expect(date.isValid('2014-4-30 23:60', 'YYYY-M-D H:m')).to.be(false);
1621
- });
1622
- it('23:59:60 is invalid', function () {
1623
- expect(date.isValid('2014-4-30 23:59:60', 'YYYY-M-D H:m:s')).to.be(false);
1624
- });
1625
- it('All zero is invalid', function () {
1626
- expect(date.isValid('00000000000000000', 'YYYYMMDDHHmmssSSS')).to.be(false);
1627
- });
1628
- it('All nine is invalid', function () {
1629
- expect(date.isValid('99999999999999999', 'YYYYMMDDHHmmssSSS')).to.be(false);
1630
- });
1631
- it('foo is invalid', function () {
1632
- expect(date.isValid('20150101235959', 'foo')).to.be(false);
1633
- });
1634
- it('bar is invalid', function () {
1635
- expect(date.isValid('20150101235959', 'bar')).to.be(false);
1636
- });
1637
- it('YYYYMMDD is invalid', function () {
1638
- expect(date.isValid('20150101235959', 'YYYYMMDD')).to.be(false);
1639
- });
1640
- it('20150101235959 is invalid', function () {
1641
- expect(date.isValid('20150101235959', '20150101235959')).to.be(false);
1642
- });
1643
- it('Y == 0', function () {
1644
- var dt = { Y: 0, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1645
- expect(date.isValid(dt)).to.be(false);
1646
- });
1647
- it('Y > 0', function () {
1648
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1649
- expect(date.isValid(dt)).to.be(true);
1650
- });
1651
- it('Y < 0', function () {
1652
- var dt = { Y: -1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1653
- expect(date.isValid(dt)).to.be(false);
1654
- });
1655
- it('Y > 9999', function () {
1656
- var dt = { Y: 100000, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1657
- expect(date.isValid(dt)).to.be(false);
1658
- });
1659
- it('M == 0', function () {
1660
- var dt = { Y: 1, M: 0, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1661
- expect(date.isValid(dt)).to.be(false);
1662
- });
1663
- it('M > 0', function () {
1664
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1665
- expect(date.isValid(dt)).to.be(true);
1666
- });
1667
- it('M < 0', function () {
1668
- var dt = { Y: 1, M: -1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1669
- expect(date.isValid(dt)).to.be(false);
1670
- });
1671
- it('M > 12', function () {
1672
- var dt = { Y: 1, M: 13, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1673
- expect(date.isValid(dt)).to.be(false);
1674
- });
1675
- it('M < 13', function () {
1676
- var dt = { Y: 1, M: 12, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1677
- expect(date.isValid(dt)).to.be(true);
1678
- });
1679
- it('D == 0', function () {
1680
- var dt = { Y: 1, M: 1, D: 0, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1681
- expect(date.isValid(dt)).to.be(false);
1682
- });
1683
- it('D > 0', function () {
1684
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1685
- expect(date.isValid(dt)).to.be(true);
1686
- });
1687
- it('D < 0', function () {
1688
- var dt = { Y: 1, M: 1, D: -1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1689
- expect(date.isValid(dt)).to.be(false);
1690
- });
1691
- it('D == 28', function () {
1692
- var dt = { Y: 1, M: 2, D: 28, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1693
- expect(date.isValid(dt)).to.be(true);
1694
- });
1695
- it('D == 29', function () {
1696
- var dt = { Y: 2000, M: 2, D: 29, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1697
- expect(date.isValid(dt)).to.be(true);
1698
- });
1699
- it('D == 30', function () {
1700
- var dt = { Y: 2000, M: 2, D: 30, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1701
- expect(date.isValid(dt)).to.be(false);
1702
- });
1703
- it('D == 31', function () {
1704
- var dt = { Y: 1, M: 4, D: 31, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1705
- expect(date.isValid(dt)).to.be(false);
1706
- });
1707
- it('D == 31', function () {
1708
- var dt = { Y: 1, M: 3, D: 31, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1709
- expect(date.isValid(dt)).to.be(true);
1710
- });
1711
- it('D > 31', function () {
1712
- var dt = { Y: 1, M: 1, D: 32, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1713
- expect(date.isValid(dt)).to.be(false);
1714
- });
1715
- it('H == 0', function () {
1716
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1717
- expect(date.isValid(dt)).to.be(true);
1718
- });
1719
- it('H > 0', function () {
1720
- var dt = { Y: 1, M: 1, D: 1, H: 1, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1721
- expect(date.isValid(dt)).to.be(true);
1722
- });
1723
- it('H < 0', function () {
1724
- var dt = { Y: 1, M: 1, D: 1, H: -1, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1725
- expect(date.isValid(dt)).to.be(false);
1726
- });
1727
- it('H > 23', function () {
1728
- var dt = { Y: 1, M: 1, D: 1, H: 24, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1729
- expect(date.isValid(dt)).to.be(false);
1730
- });
1731
- it('H < 24', function () {
1732
- var dt = { Y: 1, M: 1, D: 1, H: 23, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1733
- expect(date.isValid(dt)).to.be(true);
1734
- });
1735
- it('m == 0', function () {
1736
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1737
- expect(date.isValid(dt)).to.be(true);
1738
- });
1739
- it('m > 0', function () {
1740
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 1, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1741
- expect(date.isValid(dt)).to.be(true);
1742
- });
1743
- it('m < 0', function () {
1744
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: -1, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1745
- expect(date.isValid(dt)).to.be(false);
1746
- });
1747
- it('m > 59', function () {
1748
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 60, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1749
- expect(date.isValid(dt)).to.be(false);
1750
- });
1751
- it('m < 60', function () {
1752
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 59, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1753
- expect(date.isValid(dt)).to.be(true);
1754
- });
1755
- it('s == 0', function () {
1756
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1757
- expect(date.isValid(dt)).to.be(true);
1758
- });
1759
- it('s > 0', function () {
1760
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 1, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1761
- expect(date.isValid(dt)).to.be(true);
1762
- });
1763
- it('s < 0', function () {
1764
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: -1, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1765
- expect(date.isValid(dt)).to.be(false);
1766
- });
1767
- it('s > 59', function () {
1768
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 60, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1769
- expect(date.isValid(dt)).to.be(false);
1770
- });
1771
- it('s < 60', function () {
1772
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 59, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1773
- expect(date.isValid(dt)).to.be(true);
1774
- });
1775
- it('S == 0', function () {
1776
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1777
- expect(date.isValid(dt)).to.be(true);
1778
- });
1779
- it('S > 0', function () {
1780
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 1, Z: 0, _index: 1, _length: 1, _match: 1 };
1781
- expect(date.isValid(dt)).to.be(true);
1782
- });
1783
- it('S < 0', function () {
1784
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: -1, Z: 0, _index: 1, _length: 1, _match: 1 };
1785
- expect(date.isValid(dt)).to.be(false);
1786
- });
1787
- it('S > 999', function () {
1788
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 1000, Z: 0, _index: 1, _length: 1, _match: 1 };
1789
- expect(date.isValid(dt)).to.be(false);
1790
- });
1791
- it('S < 1000', function () {
1792
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 999, Z: 0, _index: 1, _length: 1, _match: 1 };
1793
- expect(date.isValid(dt)).to.be(true);
1794
- });
1795
- it('Z < -840', function () {
1796
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: -841, _index: 1, _length: 1, _match: 1 };
1797
- expect(date.isValid(dt)).to.be(false);
1798
- });
1799
- it('Z > -841', function () {
1800
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: -840, _index: 1, _length: 1, _match: 1 };
1801
- expect(date.isValid(dt)).to.be(true);
1802
- });
1803
- it('Z > 720', function () {
1804
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 721, _index: 1, _length: 1, _match: 1 };
1805
- expect(date.isValid(dt)).to.be(false);
1806
- });
1807
- it('Z < 721', function () {
1808
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 720, _index: 1, _length: 1, _match: 1 };
1809
- expect(date.isValid(dt)).to.be(true);
1810
- });
1811
- it('index == 0', function () {
1812
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 0, _length: 0, _match: 1 };
1813
- expect(date.isValid(dt)).to.be(false);
1814
- });
1815
- it('index > 0', function () {
1816
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1817
- expect(date.isValid(dt)).to.be(true);
1818
- });
1819
- it('length < 0', function () {
1820
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: -1, _length: -1, _match: 1 };
1821
- expect(date.isValid(dt)).to.be(false);
1822
- });
1823
- it('length == 0', function () {
1824
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 0, _match: 1 };
1825
- expect(date.isValid(dt)).to.be(false);
1826
- });
1827
- it('length > 0', function () {
1828
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 0, _length: 1, _match: 1 };
1829
- expect(date.isValid(dt)).to.be(false);
1830
- });
1831
- it('length < 0', function () {
1832
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: -1, _match: 1 };
1833
- expect(date.isValid(dt)).to.be(false);
1834
- });
1835
- it('match == 0', function () {
1836
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 0 };
1837
- expect(date.isValid(dt)).to.be(false);
1838
- });
1839
- it('match > 0', function () {
1840
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: 1 };
1841
- expect(date.isValid(dt)).to.be(true);
1842
- });
1843
- it('match < 0', function () {
1844
- var dt = { Y: 1, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 1, _length: 1, _match: -1 };
1845
- expect(date.isValid(dt)).to.be(false);
1846
- });
1847
- });
1848
-
1849
- describe('leap year', function () {
1850
- it('2012-2-29 It is valid.', function () {
1851
- expect(date.isLeapYear(new Date(2012, 0, 1).getFullYear())).to.be(true);
1852
- });
1853
- it('2100-2-29 It is invalid.', function () {
1854
- expect(date.isLeapYear(new Date(2100, 0, 1).getFullYear())).to.be(false);
1855
- });
1856
- it('2000-2-29 It is valid.', function () {
1857
- expect(date.isLeapYear(new Date(2000, 0, 1).getFullYear())).to.be(true);
1858
- });
1859
- it('2014-2-29 It is invalid.', function () {
1860
- expect(date.isLeapYear(new Date(2014, 0, 1).getFullYear())).to.be(false);
1861
- });
1862
- });
1863
-
1864
- describe('the same day', function () {
1865
- it('the same', function () {
1866
- var date1 = new Date(2016, 0, 1, 2, 34, 56, 789);
1867
- var date2 = new Date(2016, 0, 1, 23, 4, 56, 789);
1868
- expect(date.isSameDay(date1, date2)).to.be(true);
1869
- });
1870
- it('the same', function () {
1871
- var date1 = new Date(1916, 0, 1, 2, 34, 56, 789);
1872
- var date2 = new Date(1916, 0, 1, 23, 4, 56, 789);
1873
- expect(date.isSameDay(date1, date2)).to.be(true);
1874
- });
1875
- it('not the same', function () {
1876
- var date1 = new Date(2016, 0, 1, 23, 59, 59, 999);
1877
- var date2 = new Date(2016, 0, 2, 0, 0, 0, 0);
1878
- expect(date.isSameDay(date1, date2)).to.be(false);
1879
- });
1880
- it('not the same', function () {
1881
- var date1 = new Date(1916, 0, 1, 23, 59, 59, 999);
1882
- var date2 = new Date(1916, 0, 2, 0, 0, 0, 0);
1883
- expect(date.isSameDay(date1, date2)).to.be(false);
1884
- });
1885
- });
1886
-
1887
- describe('customize', function () {
1888
- it('getting current locale', function () {
1889
- expect(date.locale()).to.equal('en');
1890
- });
1891
- it('changing default meridiem', function () {
1892
- date.extend({ res: { A: ['am', 'pm'] } });
1893
- expect(date.format(new Date(2012, 0, 1, 12), 'h A')).to.not.equal('12 pm');
1894
- });
1895
- it('extending default meridiem', function () {
1896
- date.extend({
1897
- res: {
1898
- a: ['am', 'pm']
1899
- },
1900
- formatter: {
1901
- a: function (d) {
1902
- return this.res.a[d.getHours() > 11 | 0];
1903
- }
1904
- }
1905
- });
1906
- expect(date.format(new Date(2012, 0, 1, 12), 'h a')).to.equal('12 pm');
1907
- });
1908
- });