-2
votes

Parse Time '1hr 30m 4s' The Time à venir dans JavaScript

Disons que j'ai une chaîne 1h 30m 4s . Comment j'utiliserais nœud.js pour analyser cette chaîne dans (évidemment) une heure à l'avenir à partir de la date à laquelle il a été exécuté?

J'ai examiné les packages NPM date-fns et MOMENT mais ils ne semblent pas satisfaire à ce que je cherche.

Je suppose que vous pourriez faire une regexp?


1 commentaires

"Je suppose que vous pourriez faire une regexp" 👈 non, vous


4 Réponses :


0
votes

C'est assez simple. J'ai envisagé au moins des secondes devraient être disponibles. Vous devez extraire les 2e, 4ème et 6ème groupe pour HR, Min et Sec respectivement.

((\ d {1,2}) HR)? ((((((((((((((((((((\ d {1,2}) s)

 Entrez la description de l'image ici


0 commentaires


2
votes

Depuis que vous avez mentionné le moment.js, je recommanderais d'utiliser leur Durations avec un Intervalle de temps ISO 8601 format, c'est-à-dire "PT1H30M4S".

Ce format peut être analysé non seulement par moments.js mais de nombreuses autres langues et bibliothèques (Hourra pour les normes). P>

Votre chaîne actuelle n'est pas trop loin et peut être transformée assez facilement. P>

Par exemple p>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>


0 commentaires

0
votes

Vous pouvez faire quelque chose dans les lignes de:

p>

var d="1hr 30m 4s"
var ds =d.split(/hr |m |s/)
var dnow=new Date()
var dlater= new Date()
dlater.setTime( dnow.getTime() + ( ds[2]*1 + ds[1]*60 + ds[0]* 3600) * 1000)

console.log("now",dnow);
console.log("later",dlater);


0 commentaires