Skip to content

Commit 1f2dbdc

Browse files
committed
feat: add DD/MM/YYYY format support
- Add DD/MM/YYYY, DD-MM-YYYY, DD.MM.YYYY formats - Add DD/MM/YYYY HH:MM:SS and DD/MM/YYYY HH:MM:SS.SSS formats - Add validation support for all new DD/MM/YYYY formats - All existing tests pass Fixes #3
1 parent 224b83a commit 1f2dbdc

1 file changed

Lines changed: 65 additions & 11 deletions

File tree

src/index.js

Lines changed: 65 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,10 @@ const _timeSolver = (function () {
153153
3: YYYY + '/' + MM + '/' + DD,
154154
4: YYYY + '-' + MM + '-' + DD,
155155
5: YYYY + '.' + MM + '.' + DD,
156-
6: MM + DD + YYYY,
157-
7: DD + MM + YYYY,
158-
8: MM + '/' + DD + '/' + YYYY,
159-
9: MM + '-' + DD + '-' + YYYY,
156+
6: MM + DD + YYYY,
157+
7: DD + MM + YYYY,
158+
8: MM + '/' + DD + '/' + YYYY,
159+
9: MM + '-' + DD + '-' + YYYY,
160160
10: MM + '.' + DD + '.' + YYYY,
161161
11: YYYY + '/' + MM + '/' + DD + ' ' + HHMMSS,
162162
12: YYYY + '/' + MM + '/' + DD + ' ' + HHMMSSS,
@@ -173,7 +173,16 @@ const _timeSolver = (function () {
173173
23: MM + '.' + DD + '.' + YYYY + ' ' + HHMMSS,
174174
24: MM + '.' + DD + '.' + YYYY + ' ' + HHMMSSS,
175175
25: HHMMSS,
176-
26: HHMMSSS
176+
26: HHMMSSS,
177+
27: DD + '/' + MM + '/' + YYYY,
178+
28: DD + '-' + MM + '-' + YYYY,
179+
29: DD + '.' + MM + '.' + YYYY,
180+
30: DD + '/' + MM + '/' + YYYY + ' ' + HHMMSS,
181+
31: DD + '/' + MM + '/' + YYYY + ' ' + HHMMSSS,
182+
32: DD + '-' + MM + '-' + YYYY + ' ' + HHMMSS,
183+
33: DD + '-' + MM + '-' + YYYY + ' ' + HHMMSSS,
184+
34: DD + '.' + MM + '.' + YYYY + ' ' + HHMMSS,
185+
35: DD + '.' + MM + '.' + YYYY + ' ' + HHMMSSS
177186
}
178187
return dateString[_f[f]] ? dateString[_f[f]] : _errorMsg[0];
179188
},
@@ -237,6 +246,39 @@ const _timeSolver = (function () {
237246
result = false;
238247
}
239248
break;
249+
case 27:
250+
if (!_r.d.test(st)) {
251+
result = false;
252+
}
253+
break;
254+
case 28:
255+
if (!_r.e.test(st)) {
256+
result = false;
257+
}
258+
break;
259+
case 29:
260+
if (!_r.f.test(st)) {
261+
result = false;
262+
}
263+
break;
264+
case 30:
265+
var str = st.split(' ');
266+
if (str.length < 2 || !_r.d.test(str[0]) || !_r.t.test(str[1])) {
267+
result = false;
268+
}
269+
break;
270+
case 32:
271+
var str = st.split(' ');
272+
if (str.length < 2 || !_r.e.test(str[0]) || !_r.t.test(str[1])) {
273+
result = false;
274+
}
275+
break;
276+
case 34:
277+
var str = st.split(' ');
278+
if (str.length < 2 || !_r.f.test(str[0]) || !_r.t.test(str[1])) {
279+
result = false;
280+
}
281+
break;
240282
default:
241283
console.error(_errorMsg[0]);
242284
result = null;
@@ -302,9 +344,12 @@ const _timeSolver = (function () {
302344
var _m = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
303345
var _w = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
304346
var _r = {
305-
a: /^(\d{4})([/])((1|3|5|7|8|0[13578]|1[02])\2([1-9]|0[1-9]|1[0-9]|2[0-9]|3[01])|(4|6|9|0[469]|11)\2([1-9]|0[1-9]|1[0-9]|2[0-9]|3[0])|(02|2)\2([1-9]|0[1-9]|1[0-9]|2[0-8]))$/,
347+
a: /^(\d{4})([/])((1|3|5|7|8|0[13578]|1[02])\2([1-9]|0[1-9]|1[0-9]|2[0-9]|3[01])|(4|6|9|0[469]|11)\2([1-9]|0[1-9]|1[0-9]|2[0-9]|3[0])|(02|2)\2([1-9]|0[1-9]|1[0-9]|2[0-8]))$/,
306348
b: /^(\d{4})([-])((1|3|5|7|8|0[13578]|1[02])\2([1-9]|0[1-9]|1[0-9]|2[0-9]|3[01])|(4|6|9|0[469]|11)\2([1-9]|0[1-9]|1[0-9]|2[0-9]|3[0])|(02|2)\2([1-9]|0[1-9]|1[0-9]|2[0-8]))$/,
307349
c: /^(\d{4})([.])((1|3|5|7|8|0[13578]|1[02])\2([1-9]|0[1-9]|1[0-9]|2[0-9]|3[01])|(4|6|9|0[469]|11)\2([1-9]|0[1-9]|1[0-9]|2[0-9]|3[0])|(02|2)\2([1-9]|0[1-9]|1[0-9]|2[0-8]))$/,
350+
d: /^([1-9]|0[1-9]|1[0-9]|2[0-9]|3[01])([/])((1|3|5|7|8|0[13578]|1[02])\2(\d{4})|(4|6|9|0[469]|11)\2(\d{4})|(02|2)\2(\d{4}))$/,
351+
e: /^([1-9]|0[1-9]|1[0-9]|2[0-9]|3[01])([-])((1|3|5|7|8|0[13578]|1[02])\2(\d{4})|(4|6|9|0[469]|11)\2(\d{4})|(02|2)\2(\d{4}))$/,
352+
f: /^([1-9]|0[1-9]|1[0-9]|2[0-9]|3[01])([.])((1|3|5|7|8|0[13578]|1[02])\2(\d{4})|(4|6|9|0[469]|11)\2(\d{4})|(02|2)\2(\d{4}))$/,
308353
t: /^([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/
309354
};
310355
var _f = {
@@ -314,10 +359,10 @@ const _timeSolver = (function () {
314359
'YYYY/MM/DD': 3,
315360
'YYYY-MM-DD': 4,
316361
'YYYY.MM.DD': 5,
317-
'MMDDYYYY': 6,
318-
'DDMMYYYY': 7,
319-
'MM/DD/YYYY': 8,
320-
'MM-DD-YYYY': 9,
362+
'MMDDYYYY': 6,
363+
'DDMMYYYY': 7,
364+
'MM/DD/YYYY': 8,
365+
'MM-DD-YYYY': 9,
321366
'MM.DD.YYYY': 10,
322367
'YYYY/MM/DD HH:MM:SS': 11,
323368
'YYYY/MM/DD HH:MM:SS.SSS': 12,
@@ -334,7 +379,16 @@ const _timeSolver = (function () {
334379
'MM.DD.YYYY HH:MM:SS': 23,
335380
'MM.DD.YYYY HH:MM:SS.SSS': 24,
336381
'HH:MM:SS': 25,
337-
'HH:MM:SS.SSS': 26
382+
'HH:MM:SS.SSS': 26,
383+
'DD/MM/YYYY': 27,
384+
'DD-MM-YYYY': 28,
385+
'DD.MM.YYYY': 29,
386+
'DD/MM/YYYY HH:MM:SS': 30,
387+
'DD/MM/YYYY HH:MM:SS.SSS': 31,
388+
'DD-MM-YYYY HH:MM:SS': 32,
389+
'DD-MM-YYYY HH:MM:SS.SSS': 33,
390+
'DD.MM.YYYY HH:MM:SS': 34,
391+
'DD.MM.YYYY HH:MM:SS.SSS': 35
338392
}
339393
var _errorMsg = {
340394
0: '[timeSolver] Input Type Error',

0 commit comments

Comments
 (0)