J'utilise la bibliothèque de moments et depuis le front-end, je reçois du temps en HH: mm
Je dois ajouter des heures et des minutes à l'heure actuelle en utilisant moment.
Supposons que j'obtienne 05:30
depuis le frontend et je dois ajouter à l'heure UTC actuelle. Comment puis-je faire cela en utilisant momentjs?
J'ai essayé mais je n'ai pas fonctionné
moment().add('05:30', 'HH:mm')
5 Réponses :
Moment a la propriété .add
moment (). add (1, 'day')
Référence: http://momentjs.com/docs/#/manipulating/add/
Pour la conversion vers un format spécifique :
moment().add({hours:5, minutes: 30}).format('HH:mm')
@Profer Si vous obtenez déjà l'heure dans n'importe quel format, après avoir ajouté une durée, vous obtiendrez le même format. Ou vous pouvez d'abord ajouter une durée, puis la convertir dans un format spécifique.
@VLAZ Ouais, j'ai raté ça. Réponse mise à jour
EDIT: @VincenzoC ci-dessus a fourni ce que je pense personnellement être la meilleure pratique. Cochez cette réponse uniquement comme alternative à la sienne.
Faites simplement:
let [hours, minutes] = '05:30'.split(':').map(Number); console.log(hours); console.log(minutes);
Comme suggéré dans la documentation officielle: http://momentjs.com/docs/#/manipulating/add/
Soit utiliser le littéral objet comme ci-dessus, ou utilisez le chaînage.
Si vous ne pouvez pas vous débarrasser de cette chaîne, acquérez simplement les heures et les minutes en divisant:
moment().add({ hours: 5, minutes: 30 });
Vous pouvez créer une durée pour Comme l'indique la documentation sur la durée du moment, Depuis la 2.1.0 , moment prend en charge l'analyse des intervalles de temps de style ASP.NET. Les formats suivants sont pris en charge. Le format est une chaîne heure, minute, seconde séparée par des deux-points comme Voici un exemple en direct: '05: 30 ' code> en utilisant
moment.duration (String)
et utilisez add (Duration)
. '05: 30 '
est une entrée valide pour moment.duration (chaîne)
:
23:59:59
. Le nombre de jours peut être préfixé par un séparateur de points comme ceci 7.23: 59: 59
. Les secondes partielles sont également prises en charge 23: 59: 59.999
. <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
const result = moment().add( moment.duration('05:30') );
console.log( moment().format() );
console.log( result.format() );
: O ... Eh bien, c'est malin! On dirait que c'est la meilleure pratique.
Bonjour VincenzoC J'ai ce format 0530
. Maintenant ça ne marche pas. Une idée?
0530
n'est pas dans périodes de temps de style ASP.NET pris en charge par moment, car il n'y a pas de deux-points ( Le format est une chaîne heure, minute, seconde séparés par deux-points ), vous devez ajouter votre propre logique pour traduire l'entrée en fonction de vos besoins. (par exemple var input = '0530'; var output = str.substring (0, 2) + ':' + str.substring (2)
, mais il pourrait y avoir beaucoup de cas d'angle)
Salut Pouvez-vous répondre à ceci stackoverflow.com/questions/62383797/... Fondamentalement vice-versa de ci-dessus
var t = '05:30'; var hours = parseInt(t.substr(0,2)); var minutes = parseInt(t.substr(3,5)); moment().add(hours,'hours').add(minutes,'minutes');
Essayez d'utiliser
moment.add(5,'hours').add(30,'minutes').format('HH:mm')
OU
moment (). add ({heures: 5, minutes: 30}). format ('HH: mm')