在45秒前获得正确的时间戳

时间:2018-03-17 07:30:28

标签: node.js mongodb mongoose 64-bit

我想获得一个有效的MongoDB时间戳,我有这个:

import {Timestamp} from "bson";
const ts = Timestamp.fromInt(Date.now() - 45000);
console.log(ts);

记录:

Timestamp { _bsontype: 'Timestamp', low_: 853265937, high_: 0 }

这看起来不对,我做错了什么?

请注意,有效的时间戳实例是64位的: http://mongodb.github.io/node-mongodb-native/core/api/Timestamp.html

1 个答案:

答案 0 :(得分:1)

要在45秒前获得时间戳:

Timestamp((new Date().getTime()-45000)/1000,0)

Date()。getTime()给出了来自UNIX epoc的毫秒数,这就是为什么它除以1000.然后那个其他参数(0)就是在那个秒值之后的零毫秒,我们把它放到第一个参数。

当然,如果您需要精确的Timestamp()值,则将(new Date().getTime()-45000)/1000的小数部分填充为第二个参数。

var x=(new Date().getTime()-45000)/1000; 
var y=Math.floor(x); 
var z=Math.round((x-y)*1000); 
Timestamp(y,z)