web-dev-qa-db-fra.com

Conversion de la date et de l'heure en horodatage Unix

J'affiche la date et l'heure comme ceci

24 novembre 2009 17:57:35

J'aimerais le convertir en horodatage Unix afin de pouvoir le manipuler facilement. J'aurais besoin d'utiliser regex pour faire correspondre chaque partie de la chaîne, puis de calculer l'horodatage Unix à partir de cela.

Je suis affreux avec regex mais je suis venu avec cela. S'il vous plaît suggérer des améliorations ^. ^

/((\d){2}+)-((Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)+)-((\d){4}+) ((\d){2}+):((\d){2}+):((\d){2}+)/gi

Comment puis-je faire ceci?

54
Ben Shelock

Si vous avez juste besoin d’une bonne fonction d’analyse de date, je regarderais date.js . Cela prend à peu près n'importe quelle chaîne de date que vous pouvez utiliser et vous renvoie un objet Date JavaScript.

Une fois que vous avez un objet Date, vous pouvez appeler sa méthode getTime (), ce qui vous donnera des millisecondes à compter du 1er janvier 1970. Divisez simplement ce résultat par 1000 pour obtenir la valeur timestamp Unix.

Dans le code, incluez simplement date.js, puis:

var unixtime = Date.parse("24-Nov-2009 17:57:35").getTime()/1000
85
Ian Clelland

On dirait que getTime n'est pas fonctionnel dans la réponse ci-dessus.

Date.parse(currentDate)/1000
56
chovy

Vous pouvez utiliser Date.getTime() function ou l'objet Date lui-même qui, lorsqu'il est divisé, renvoie le temps en millisecondes.

var d = new Date();

d/1000
> 1510329641.84

d.getTime()/1000
> 1510329641.84
4
Xeoncross

En utilisant un sélecteur de date pour obtenir une date et un sélecteur d’heure, j’obtiens deux variables. C’est ainsi que je les rassemble au format unixtime puis que je les extrait.

let datetime = oDdate+' '+oDtime;
let unixtime = Date.parse(datetime)/1000;
console.log('unixtime:',unixtime);

pour le prouver:

let milliseconds = unixtime * 1000;
dateObject = new Date(milliseconds);
console.log('dateObject:',dateObject);

prendre plaisir!

0
David White