J'utilise Moment.js pour analyser et mettre en forme les dates dans mon application Web. Dans le cadre d'un objet JSON, mon serveur backend envoie des dates en nombre de millisecondes à partir de l'époque UTC (décalage Unix).
L'analyse des dates dans un fuseau horaire spécifique est facile - il suffit d'ajouter l'identificateur de fuseau horaire RFC 822 à la fin de la chaîne avant l'analyse:
// response varies according to your timezone
const m1 = moment('3/11/2012 13:00').utc().format("MM/DD HH:mm")
// problem solved, always "03/11 17:00"
const m2 = moment('3/11/2012 13:00 -0400').utc().format("MM/DD HH:mm")
console.log({ m1, m2 })
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
Mais comment formater une date dans un fuseau horaire spécifique ?
Je veux des résultats cohérents quelle que soit l'heure actuelle du navigateur, mais je ne veux pas afficher les dates en UTC.
DD MMM, YYYY
ne fonctionne pas, quand je l'utilise comme moment.tz("2018-02-15T14:20:00.000+0530", "Asia/Bangkok").format("DD MMM, YYYY")
. Quelqu'un peut-il me diriger dans la documentation où je peux trouver toutes les clés pour le formatage du temps lors de l'utilisation de cette api.
"15 Feb, 2018"
. Vouliez-vous utiliser la chaîne de format DD MMMM, YYYY
pour obtenir "15 February, 2018"
?