86 votes

Comment obtenir am pm à partir de la chaîne de temps de la date en utilisant moment js

J'ai une chaîne de caractères comme Mon 03-Jul-2017, 11:00 AM/PM et je dois convertir cela en une chaîne de caractères comme 11:00 AM/PM en utilisant moment js.

Le problème ici est que je ne peux pas obtenir AM o PM à partir de la chaîne date-heure.

C'est ce que je fais :

moment(Mon 03-Jul-2017, 11:00 AM, 'dd-mm-yyyy hh:mm').format('hh:mm A')

et cela fonctionne bien puisque j'obtiens 11:00 AM mais si la chaîne a PM en elle, elle donne encore AM dans la sortie.

comme ceci moment(Mon 03-Jul-2017, 11:00 PM, 'dd-mm-yyyy hh:mm').format('hh:mm A') donne également 11:00 AM en sortie au lieu de 11:00 PM

0 votes

0 votes

@Alexander la question liée concerne le formatage, le problème ici concerne l'analyse syntaxique.

164voto

VincenzoC Points 14059

Vous utilisez les mauvais conteneurs de format lors de l'analyse de votre entrée. Vous devriez utiliser ddd pour une abréviation du nom du jour de la semaine, DD pour le jour du mois, MMM pour une abréviation du nom du mois, YYYY pour l'année, hh pour le 1-12 heure, mm pendant quelques minutes et A pour AM/PM . Voir moment(String, String) docs.

Voici un échantillon fonctionnel en direct :

console.log( moment('Mon 03-Jul-2017, 11:00 AM', 'ddd DD-MMM-YYYY, hh:mm A').format('hh:mm A') );
console.log( moment('Mon 03-Jul-2017, 11:00 PM', 'ddd DD-MMM-YYYY, hh:mm A').format('hh:mm A') );

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

16voto

Deepu Reghunath Points 1509

Vous obtiendrez l'heure sans spécifier le format de la date. convertissez la chaîne en date en utilisant Date objet

var myDate = new Date('Mon 03-Jul-2017, 06:00 PM');

solution de travail :

var myDate= new Date('Mon 03-Jul-2017, 06:00 PM');
console.log(moment(myDate).format('HH:mm')); // 24 hour format 
console.log(moment(myDate).format('hh:mm')); // 12 hour format
console.log(moment(myDate).format('hh:mm A'));
console.log(moment(myDate).format('hh:mm a'));

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X