Moment: 00:00:00 ne doit pas être égal à 12:00:00 lorsqu'il est analysé au format h:m:s

Créé le 6 janv. 2012  ·  4Commentaires  ·  Source: moment/moment

Ceux-ci semblent être de mauvais résultats - est-ce que je fais quelque chose de mal ?

moment('12:00:00', 'hh:mm:ss').format('hh:mm:ss'); // "10:00:00"
moment('00:00:00', 'hh:mm:ss').format('hh:mm:ss'); // "12:00:00" (semble être incorrect)

moment('12:30:00', 'hh:mm:ss').format('hh:mm:ss'); // "12:30:00"
moment('00:30:00', 'hh:mm:ss').format('hh:mm:ss'); // "12:30:00" (semble être incorrect)

Commentaire le plus utile

Vous devriez utiliser HH:mm:ss au lieu de hh:mm:ss afin d'obtenir une horloge de 24 heures.

Cependant, il semble y avoir un bug. 0 heure n'est pas une heure valide dans une horloge de 12 heures. Je ne sais pas quel est le comportement souhaité dans cette situation cependant. Il ne semble pas que vous devriez obtenir une erreur s'il est 0 heures.

Tous les 4 commentaires

Vous devriez utiliser HH:mm:ss au lieu de hh:mm:ss afin d'obtenir une horloge de 24 heures.

Cependant, il semble y avoir un bug. 0 heure n'est pas une heure valide dans une horloge de 12 heures. Je ne sais pas quel est le comportement souhaité dans cette situation cependant. Il ne semble pas que vous devriez obtenir une erreur s'il est 0 heures.

Cool, merci pour la réponse. Je suis passé à l'utilisation de HH mais je semble toujours avoir le problème, au moins avec Chrome :

moment('12:00:00', 'HH:mm:ss').format('HH:mm:ss'); // "00:00:00" (incorrect ?)
moment('00:00:00', 'HH:mm:ss').format('HH:mm:ss'); // "00:00:00" (comportement correct)

Par défaut, HH et hh analysent les heures sur 24 heures. Pour analyser en 12 heures, vous devez ajouter « am » ou « pm ».

Le message d'origine était d'avoir correctement. Vous pouvez le voir si vous ajoutez a à la chaîne de formatage.

moment('12:00:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:00:00 pm"
moment('00:00:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:00:00 am"

moment('12:30:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:30:00 pm"
moment('00:30:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:30:00 am"

Je pense que le problème ci-dessous est un problème connu qui a été résolu. Cela a été causé par le commit dans #74 et corrigé dans #92. J'ajoute des tests unitaires pour cela cependant. Je vais aussi clarifier la doc.

moment('12:00:00', 'HH:mm:ss').format('HH:mm:ss'); // "00:00:00"

Si vous utilisez la version 1.2.0, vous devez passer à la version 1.3.0, car c'était à l'époque de l'introduction de la correction de bogues.

Cool, ça sonne bien. Merci!

Cette page vous a été utile?
0 / 5 - 0 notes