我想获得一个有效的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
答案 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)