J'ai essayé de formater une date en utilisant date-fns mais j'échoue toujours. Fondamentalement, cela fonctionne très bien avec momentJS mais pas avec date-fns :

Voici mon rendez-vous :

"10-13-20" // month, day, and year

Maintenant, avec momentJS, cela fonctionne très bien comme ceci :

let result = moment("10-13-20", 'MM-DD-YY').format()
// result = "2020-10-13T00:00:00-06:00"

J'essaie donc de faire la même chose en utilisant date-fns mais sans succès. Est-ce que quelqu'un peut-il me montrer la bonne direction? Merci d'avance!

let result = format(new Date("10-13-20"), 'MM-DD-YY') // Not working
0
progx 15 oct. 2020 à 01:15

1 réponse

Meilleure réponse

Comme vous pouvez le voir, avec la bibliothèque moment, nous avons besoin de 2 étapes pour obtenir le résultat : analyser la chaîne en objet Date, puis formater l'objet date en chaîne.

Votre code - format(new Date("10-13-20"), 'MM-DD-YY') est l'étape format, essayez de convertir un objet date en une chaîne avec le modèle de format est MM-DD-YY. Mais votre objet date n'est pas correct.

La solution fait la même chose avec moment lib :

  1. Analyser la chaîne de date jusqu'à l'objet date. Utilisez parse

    const dateString = '10-13-20';
    const date = parse(dateString, 'MM-dd-yy', new Date()) // not MM-DD-YY
    
  2. Formatez l'objet date en chaîne de résultat. Utilisez le format

    const result = format(date, "yyyy-MM-dd'T'HH:mm:ss.SSSxxx")
    console.log(result)
    

    Le résultat sera comme (le même avec le résultat du moment dans mon fuseau horaire):

     2020-10-13T00:00:00.000+09:00
    
6
hoangdv 14 oct. 2020 à 23:54