File tree 3 files changed +15
-11
lines changed
3 files changed +15
-11
lines changed Original file line number Diff line number Diff line change @@ -191,7 +191,8 @@ function decodeValueProto(valueProto) {
191
191
}
192
192
193
193
case 'timestampValue' : {
194
- return new Date ( parseInt ( value . seconds , 10 ) * 1000 ) ;
194
+ var milliseconds = parseInt ( value . nanos , 10 ) / 1e6 ;
195
+ return new Date ( parseInt ( value . seconds , 10 ) * 1000 + milliseconds ) ;
195
196
}
196
197
197
198
default : {
@@ -252,11 +253,10 @@ function encodeValue(value) {
252
253
253
254
if ( value instanceof Date ) {
254
255
var seconds = value . getTime ( ) / 1000 ;
255
- var secondsRounded = Math . floor ( seconds ) ;
256
256
257
257
valueProto . timestampValue = {
258
- seconds : secondsRounded ,
259
- nanos : Math . floor ( ( seconds - secondsRounded ) * 1e9 )
258
+ seconds : Math . floor ( seconds ) ,
259
+ nanos : value . getMilliseconds ( ) * 1e6
260
260
} ;
261
261
262
262
return valueProto ;
Original file line number Diff line number Diff line change @@ -71,7 +71,7 @@ describe('Datastore', function() {
71
71
var post = {
72
72
title : 'How to make the perfect pizza in your grill' ,
73
73
tags : [ 'pizza' , 'grill' ] ,
74
- publishedAt : new Date ( 2001 , 0 , 1 ) ,
74
+ publishedAt : new Date ( ) ,
75
75
author : 'Silvano' ,
76
76
isDraft : false ,
77
77
wordCount : 400 ,
Original file line number Diff line number Diff line change @@ -218,13 +218,18 @@ describe('entity', function() {
218
218
} ) ;
219
219
220
220
it ( 'should decode timestamps' , function ( ) {
221
- var seconds = String ( Date . now ( ) / 1000 ) ;
222
- var expectedValue = new Date ( parseInt ( seconds , 10 ) * 1000 ) ;
221
+ var date = new Date ( ) ;
222
+
223
+ var seconds = Math . floor ( date . getTime ( ) / 1000 ) ;
224
+ var ms = date . getMilliseconds ( ) ;
225
+
226
+ var expectedValue = new Date ( seconds * 1000 + ms ) ;
223
227
224
228
var valueProto = {
225
229
value_type : 'timestampValue' ,
226
230
timestampValue : {
227
- seconds : seconds
231
+ seconds : seconds ,
232
+ nanos : ms * 1e6
228
233
}
229
234
} ;
230
235
@@ -327,12 +332,11 @@ describe('entity', function() {
327
332
it ( 'should encode a date' , function ( ) {
328
333
var value = new Date ( ) ;
329
334
var seconds = value . getTime ( ) / 1000 ;
330
- var secondsRounded = Math . floor ( seconds ) ;
331
335
332
336
var expectedValueProto = {
333
337
timestampValue : {
334
- seconds : secondsRounded ,
335
- nanos : Math . floor ( ( seconds - secondsRounded ) * 1e9 )
338
+ seconds : Math . floor ( seconds ) ,
339
+ nanos : value . getMilliseconds ( ) * 1e6
336
340
}
337
341
} ;
338
342
You can’t perform that action at this time.
0 commit comments