Sous Unix, je peux exécuter date '+%s'
pour obtenir le nombre de secondes depuis Epoch. Mais je dois interroger cela dans un navigateur frontal, pas dans le back-end.
Existe-t-il un moyen de connaître les secondes depuis Epoch en JavaScript?
var seconds = new Date() / 1000;
Ou, pour une version moins pirate:
var d = new Date();
var seconds = d.getTime() / 1000;
N'oubliez pas de Math.floor()
ou Math.round()
pour arrondir au nombre entier le plus proche, sinon vous pourriez obtenir une décimale très étrange que vous ne souhaitiez pas:
var d = new Date();
var seconds = Math.round(d.getTime() / 1000);
Essaye ça:
new Date().getTime() / 1000
Vous voudrez peut-être utiliser Math.floor()
ou Math.round()
pour couper une fraction en millisecondes.
Tu voulais des secondes depuis Epoch
function seconds_since_Epoch(){ return Math.floor( Date.now() / 1000 ) }
exemple d'utilisation
foo = seconds_since_Epoch();
Les solutions ci-dessus utilisent des propriétés d'instance. Une autre méthode consiste à utiliser la propriété de classe Date.now
:
_var time_in_millis = Date.now();
var time_in_seconds = time_in_millis / 1000;
_
Si vous voulez que time_in_seconds soit un entier, vous avez 2 options:
a. Si vous voulez être cohérent avec la troncature de style C:
_time_in_seconds_int = time_in_seconds >= 0 ?
Math.floor(time_in_seconds) : Math.ceil(time_in_seconds);
_
b. Si vous souhaitez simplement connaître la définition mathématique de la division entière, prenez la parole. (La division entière de Python fait cela).
_time_in_seconds_int = Math.floor(time_in_seconds);
_
Si vous voulez seulement des secondes sous forme de nombre entier sans décimales représentant les millisecondes encore attachées, utilisez ceci:
var seconds = Math.floor(new Date() / 1000);
Vous pouvez créer un objet Date (qui contiendra l'heure actuelle), puis appeler getTime()
pour obtenir le ms depuis l'époque.
var ms = new Date().getTime();
Si vous voulez des secondes, divisez le chiffre par 1000:
var sec = new Date().getTime() / 1000;
Ma manière préférée:
var msEpoch = (+new Date());
var sEpoch = (+new Date()) / 1000;
Pour plus d'informations sur le +
sauter dans le terrier du lapin .