1+ var defaults = require ( './defaults' ) ;
12
23// convert a JS array to a postgres array literal
34// uses comma separator so won't work for types like box that use
@@ -32,7 +33,11 @@ var prepareValue = function(val, seen) {
3233 return val ;
3334 }
3435 if ( val instanceof Date ) {
35- return dateToString ( val ) ;
36+ if ( defaults . parseInputDatesAsUTC ) {
37+ return dateToStringUTC ( val ) ;
38+ } else {
39+ return dateToString ( val ) ;
40+ }
3641 }
3742 if ( Array . isArray ( val ) ) {
3843 return arrayString ( val ) ;
@@ -59,13 +64,14 @@ function prepareObject(val, seen) {
5964 return JSON . stringify ( val ) ;
6065}
6166
67+ function pad ( number , digits ) {
68+ number = "" + number ;
69+ while ( number . length < digits )
70+ number = "0" + number ;
71+ return number ;
72+ }
73+
6274function dateToString ( date ) {
63- function pad ( number , digits ) {
64- number = "" + number ;
65- while ( number . length < digits )
66- number = "0" + number ;
67- return number ;
68- }
6975
7076 var offset = - date . getTimezoneOffset ( ) ;
7177 var ret = pad ( date . getFullYear ( ) , 4 ) + '-' +
@@ -86,6 +92,19 @@ function dateToString(date) {
8692 return ret + pad ( Math . floor ( offset / 60 ) , 2 ) + ":" + pad ( offset % 60 , 2 ) ;
8793}
8894
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+
89108function normalizeQueryConfig ( config , values , callback ) {
90109 //can take in strings or config objects
91110 config = ( typeof ( config ) == 'string' ) ? { text : config } : config ;
0 commit comments