Snažím sa získať platnú časovú pečiatku MongoDB, mám toto:
import {Timestamp} from "bson";
const ts = Timestamp.fromInt(Date.now() - 45000);
console.log(ts);
že protokoly:
Timestamp { _bsontype: "Timestamp", low_: 853265937, high_: 0 }
to sa nezdá správne, čo robím zle?
Upozorňujeme, že platná inštancia časovej pečiatky je 64-bitová vec: http://mongodb.github.io/node-mongodb-native/core/api/Timestamp.html
odpovede:
1 pre odpoveď č. 1Získanie časovej pečiatky pred 45 sekundami:
Timestamp((new Date().getTime()-45000)/1000,0)
Dátum().getTime () dáva milisekundy zo systému UNIX epoc, takže je to preto rozdelené na 1000. Potom je tento ďalší parameter (0) iba nula milisekúnd, potom hodnoty sekúnd zodpovedajú tomu, čo sme vložili do prvého parametra.
Samozrejme, ak potrebujete presnú hodnotu Timestamp (), vyplníte túto desatinnú časť (new Date().getTime()-45000)/1000
ako druhý parameter.
var x=(new Date().getTime()-45000)/1000;
var y=Math.floor(x);
var z=Math.round((x-y)*1000);
Timestamp(y,z)