web-dev-qa-db-fra.com

Comment obtenir am pm de la chaîne date / heure en utilisant moment js

J'ai une chaîne en tant que Mon 03-Jul-2017, 11:00 AM/PM et je dois la convertir en une chaîne comme 11:00 AM/PM en utilisant le moment js.

Le problème ici est que je ne parviens pas à obtenir AM ou PM à partir de la chaîne de date/heure.

Je fais ça:

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

et cela fonctionne bien car j'obtiens 11:00 AM mais si la chaîne contient PM, elle donne toujours 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

33
User 101

Vous utilisez des jetons de format incorrect lors de l'analyse de votre entrée. Vous devez 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 pour les minutes et A pour AM/PM. Voir moment(String, String) docs.

Voici un échantillon live de travail:

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>
67
VincenzoC