1
1
/* global exports */
2
2
"use strict" ;
3
3
4
+ var createDate = function ( y , m , d , h , mi , s , ms ) {
5
+ var date = new Date ( Date . UTC ( y , m , d , h , mi , s , ms ) ) ;
6
+ if ( y >= 0 && y < 100 ) {
7
+ date . setUTCFullYear ( y ) ;
8
+ }
9
+ return date ;
10
+ } ;
11
+
12
+ var createLocalDate = function ( y , m , d , h , mi , s , ms ) {
13
+ var date = new Date ( y , m , d , h , mi , s , ms ) ;
14
+ if ( y >= 0 && y < 100 ) {
15
+ date . setFullYear ( y ) ;
16
+ }
17
+ return date ;
18
+ } ;
19
+
4
20
exports . isValid = function ( date ) {
5
21
return ! isNaN ( date . getTime ( ) ) ;
6
22
} ;
@@ -15,13 +31,12 @@ exports.toInstantImpl = function (just) {
15
31
} ;
16
32
17
33
exports . jsdate = function ( parts ) {
18
- var t = Date . UTC ( parts . year , parts . month , parts . day , parts . hour , parts . minute , parts . second , parts . millisecond ) ;
19
- return new Date ( t ) ;
34
+ return createDate ( parts . year , parts . month , parts . day , parts . hour , parts . minute , parts . second , parts . millisecond ) ;
20
35
} ;
21
36
22
37
exports . jsdateLocal = function ( parts ) {
23
38
return function ( ) {
24
- return new Date ( parts . year , parts . month , parts . day , parts . hour , parts . minute , parts . second , parts . millisecond ) ;
39
+ return createLocalDate ( parts . year , parts . month , parts . day , parts . hour , parts . minute , parts . second , parts . millisecond ) ;
25
40
} ;
26
41
} ;
27
42
0 commit comments