web-dev-qa-db-fra.com

Comment générer un nœud au format timjamp?

J'essaie d'envoyer des données au processus de cache de carbone en graphite sur le port 2003 à l'aide de 

1) terminal Ubuntu

echo "test.average 4 `date +%s`" | nc -q0 127.0.0.1 2003

2) NODEJS

var socket = net.createConnection(2003, "127.0.0.1", function() {
    socket.write("test.average "+assigned_tot+"\n");
    socket.end();
});

Cela fonctionne bien lorsque j’envoie des données à l’aide de la commande terminal window sur mon Ubuntu. Cependant, je ne suis pas sûr de savoir comment envoyer le format timestamp unix Epoch de nodejs? 

Grpahite comprend la métrique dans ce format metric_path valeur timestamp\n

37
user3846091

Le système JavaScript Date natif fonctionne en millisecondes et non en secondes, mais sinon, il correspond au même "temps de traitement" qu'à UNIX. 

Vous pouvez arrondir les fractions de seconde et obtenir l’époque UNIX en procédant comme suit:

Math.floor(new Date() / 1000)
96
tadman

Si vous le pouvez, je vous recommande vivement d'utiliser moment.js. Pour obtenir le nombre de millisecondes depuis UNIX Epoch, faites 

moment().valueOf()

Pour obtenir le nombre de secondes depuis UNIX Epoch, faites

moment().unix()

Vous pouvez également convertir des temps comme ceci:

moment('2015-07-12 14:59:23', 'YYYY-MM-DD HH:mm:ss').valueOf()

Je fais ça tout le temps.

Pour installer moment.js sur le nœud, 

npm install moment

et de l'utiliser

var moment = require('moment');
moment().valueOf();

ref

16
FullStack

Les méthodes d'assistance qui le simplifient, copiez/collez ce qui suit sur votre JS:

Date.prototype.toUnixTime = function() { return this.getTime()/1000|0 };
Date.time = function() { return new Date().toUnixTime(); }

Maintenant, vous pouvez l'utiliser où vous voulez par de simples appels: 

// Get the current unix time: 
console.log(Date.time())

// Parse a date and get it as Unix time
console.log(new Date('Mon, 25 Dec 2010 13:30:00 GMT').toUnixTime())

Démo:

     
    Date.prototype.toUnixTime = function() { return this.getTime()/1000|0 };
    Date.time = function() { return new Date().toUnixTime(); }

    // Get the current unix time: 
    console.log("Current Time: " + Date.time())

    // Parse a date and get it as Unix time
    console.log("Custom Time (Mon, 25 Dec 2010 13:30:00 GMT): " + new Date('Mon, 25 Dec 2010 13:30:00 GMT').toUnixTime())

0
msoliman