@@ -260,21 +260,20 @@ Driver.prototype.valueToProperty = function (value, property) {
260260 }
261261 break ;
262262 case "date" :
263- if ( typeof value == 'string' ) {
264- if ( value . indexOf ( 'Z' , value . length - 1 ) === - 1 ) {
265- value = new Date ( value + 'Z' ) ;
266- } else {
267- value = new Date ( value ) ;
268- }
269-
270- if ( this . config . timezone && this . config . timezone != 'local' ) {
271- var tz = convertTimezone ( this . config . timezone ) ;
263+ if ( typeof value === 'string' ) {
264+ var hasTimezone = value . indexOf ( 'Z' ) !== - 1 ;
265+ value = new Date ( value ) ;
272266
267+ if ( ! hasTimezone ) {
273268 // shift local to UTC
274269 value . setTime ( value . getTime ( ) - ( value . getTimezoneOffset ( ) * 60000 ) ) ;
275- if ( tz !== false ) {
276- // shift UTC to timezone
277- value . setTime ( value . getTime ( ) - ( tz * 60000 ) ) ;
270+
271+ if ( this . config . timezone && this . config . timezone != 'local' ) {
272+ var tz = convertTimezone ( this . config . timezone ) ;
273+ if ( tz !== false ) {
274+ // shift UTC to timezone
275+ value . setTime ( value . getTime ( ) - ( tz * 60000 ) ) ;
276+ }
278277 }
279278 }
280279 }
@@ -301,45 +300,8 @@ Driver.prototype.propertyToValue = function (value, property) {
301300 }
302301 break ;
303302 case "date" :
304- if ( this . config . query && this . config . query . strdates ) {
305- if ( value instanceof Date ) {
306- var year = value . getUTCFullYear ( ) ;
307- var month = value . getUTCMonth ( ) + 1 ;
308- if ( month < 10 ) {
309- month = '0' + month ;
310- }
311- var date = value . getUTCDate ( ) ;
312- if ( date < 10 ) {
313- date = '0' + date ;
314- }
315- var strdate = year + '-' + month + '-' + date ;
316- if ( property . time === false ) {
317- value = strdate ;
318- break ;
319- }
320-
321- var hours = value . getUTCHours ( ) ;
322- if ( hours < 10 ) {
323- hours = '0' + hours ;
324- }
325- var minutes = value . getUTCMinutes ( ) ;
326- if ( minutes < 10 ) {
327- minutes = '0' + minutes ;
328- }
329- var seconds = value . getUTCSeconds ( ) ;
330- if ( seconds < 10 ) {
331- seconds = '0' + seconds ;
332- }
333- var millis = value . getUTCMilliseconds ( ) ;
334- if ( millis < 10 ) {
335- millis = '0' + millis ;
336- }
337- if ( millis < 100 ) {
338- millis = '0' + millis ;
339- }
340- strdate += ' ' + hours + ':' + minutes + ':' + seconds + '.' + millis + '000' ;
341- value = strdate ;
342- }
303+ if ( value instanceof Date ) {
304+ value = value . toISOString ( ) ;
343305 }
344306 break ;
345307 default :
0 commit comments