Comment puis-je convertir une date normale 2012.08.10
en horodatage Unix en javascript?
Fiddle: http://jsfiddle.net/J2pWj/
J'ai vu de nombreux articles ici qui le convertissent en PHP, Ruby, etc ... Mais je dois le faire dans JS.
Comment puis-je convertir une date normale 2012.08.10
en horodatage Unix en javascript?
Fiddle: http://jsfiddle.net/J2pWj/
J'ai vu de nombreux articles ici qui le convertissent en PHP, Ruby, etc ... Mais je dois le faire dans JS.
unix timestamp
est si fondamental dans toute l'ingénierie et l'informatique. J'aimerais qu'il y ait une méthode de commodité intégrée. J'utilise actuellementMath.floor((+new Date()) / 1000);
Réponses:
Consultez la documentation JavaScript Date .
la source
Il est important d'ajouter le
toFixed(0)
pour supprimer les décimales lors de la division par 1000 pour convertir des millisecondes en secondes.La
.getTime()
fonction renvoie l'horodatage en millisecondes, mais les vrais horodatages Unix sont toujours en secondes.la source
Vous devriez vérifier l'api moment.js, il est très facile à utiliser et possède de nombreuses fonctionnalités intégrées.
Je pense que pour votre problème, vous pouvez utiliser quelque chose comme ceci:
la source
la source
Vous pouvez simplement utiliser l'opérateur unaire +
(+new Date('2012.08.10')/1000).toFixed(0);
http://xkr.us/articles/javascript/unary-add/ - regardez sous Dates.
la source
/
c'est déjà un opérateur mathématique. De plus,toFixed
renvoie une chaîne et non un nombre, au cas où le type serait important.Vous pouvez utiliser Date.parse () , mais les formats d'entrée qu'il accepte dépendent de l'implémentation. Cependant, si vous pouvez convertir la date au format ISO (AAAA-MM-JJ) , la plupart des implémentations devraient le comprendre.
Voir Pourquoi Date.parse donne-t-il des résultats incorrects? .
la source
Dans ce cas, il est important de ne renvoyer qu'un nombre entier (donc une simple division ne fera pas l'affaire), et aussi de ne renvoyer que les secondes réellement écoulées (c'est pourquoi ce code utilise
Math.floor()
et nonMath.round()
).la source
Vous pouvez le faire en utilisant la méthode Date.parse ().
Sortie Date.parse ("03.03.2016") -> 1456959600000
Sortie Date.parse ("2015-12-12") -> 1449878400000
la source
la source
Après avoir comparé l'horodatage avec celui de PHP, rien de ce qui précède ne semble correct pour mon fuseau horaire. Le code ci-dessous m'a donné le même résultat que PHP, ce qui est le plus important pour le projet que je fais.
J'utilise ceci sur NodeJS, et nous avons le fuseau horaire «Australie / Sydney». Donc, j'ai dû ajouter ceci sur le fichier .env:
Ci-dessus équivaut à:
la source
convertir l'horodatage en horodatage unix.
const date = 1513787412; const unixDate = new Date(date * 1000);// Dec 20 2020 (object)
pour obtenir le timeStamp après la conversion
const TimeStamp = new Date(date*1000).getTime(); //1513787412000
la source