1
+ var defaults = require ( './defaults' ) ;
1
2
2
3
// convert a JS array to a postgres array literal
3
4
// uses comma separator so won't work for types like box that use
@@ -32,7 +33,11 @@ var prepareValue = function(val, seen) {
32
33
return val ;
33
34
}
34
35
if ( val instanceof Date ) {
35
- return dateToString ( val ) ;
36
+ if ( defaults . parseInputDatesAsUTC ) {
37
+ return dateToStringUTC ( val ) ;
38
+ } else {
39
+ return dateToString ( val ) ;
40
+ }
36
41
}
37
42
if ( Array . isArray ( val ) ) {
38
43
return arrayString ( val ) ;
@@ -59,13 +64,14 @@ function prepareObject(val, seen) {
59
64
return JSON . stringify ( val ) ;
60
65
}
61
66
67
+ function pad ( number , digits ) {
68
+ number = "" + number ;
69
+ while ( number . length < digits )
70
+ number = "0" + number ;
71
+ return number ;
72
+ }
73
+
62
74
function dateToString ( date ) {
63
- function pad ( number , digits ) {
64
- number = "" + number ;
65
- while ( number . length < digits )
66
- number = "0" + number ;
67
- return number ;
68
- }
69
75
70
76
var offset = - date . getTimezoneOffset ( ) ;
71
77
var ret = pad ( date . getFullYear ( ) , 4 ) + '-' +
@@ -86,6 +92,19 @@ function dateToString(date) {
86
92
return ret + pad ( Math . floor ( offset / 60 ) , 2 ) + ":" + pad ( offset % 60 , 2 ) ;
87
93
}
88
94
95
+ function dateToStringUTC ( date ) {
96
+
97
+ var ret = pad ( date . getUTCFullYear ( ) , 4 ) + '-' +
98
+ pad ( date . getUTCMonth ( ) + 1 , 2 ) + '-' +
99
+ pad ( date . getUTCDate ( ) , 2 ) + 'T' +
100
+ pad ( date . getUTCHours ( ) , 2 ) + ':' +
101
+ pad ( date . getUTCMinutes ( ) , 2 ) + ':' +
102
+ pad ( date . getUTCSeconds ( ) , 2 ) + '.' +
103
+ pad ( date . getUTCMilliseconds ( ) , 3 ) ;
104
+
105
+ return ret + "+00:00" ;
106
+ }
107
+
89
108
function normalizeQueryConfig ( config , values , callback ) {
90
109
//can take in strings or config objects
91
110
config = ( typeof ( config ) == 'string' ) ? { text : config } : config ;
0 commit comments