J'ai besoin de convertir une date comme celle-ci, 03/07/2016, en un format de date comme, 2016-03-07.

Comment puis-je le faire en utilisant javascript ou jquery?

4
Jordan Davis 8 mars 2016 à 02:20

3 réponses

Meilleure réponse

En supposant que votre entrée est une chaîne, cela est facile à faire en utilisant une expression régulière avec la String .replace() méthode:

var input = "03/07/2016";
var output = input.replace(/(\d\d)\/(\d\d)\/(\d{4})/, "$3-$1-$2");

En fait, si le format d'entrée est garanti, vous pouvez simplement échanger les morceaux en fonction de leur position sans prendre la peine de faire correspondre explicitement les chiffres et les barres obliques:

var output = input.replace(/(..).(..).(....)/, "$3-$1-$2");
13
nnnnnn 7 mars 2016 à 23:56

Si vous voulez éviter d'utiliser des expressions régulières, la manipulation ou en chargeant une bibliothèque entière comme moment, vous pouvez le faire sur une seule ligne en créant un nouveau JavaScript {{X0 }} objet avec la date que vous souhaitez mettre en forme et appelant sa méthode toLocaleDateString avec des paramètres régionaux compatibles, tels que fr-CA.

new Date('01/31/2020').toLocaleDateString('fr-CA') // "2020-01-31"

Pris en charge dans tous les navigateurs modernes.


Crédit: https://masteringjs.io/tutorials/fundamentals/date_format

1
Ian Harris 31 janv. 2020 à 21:12

Veuillez suivre la méthode ci-dessous. L'astuce consiste à utiliser la propriété unshift.

function formatDate(__d){
    if(__d.indexOf('/')){
      var a = __d.split('/')
      var b = a.pop()
      a.unshift(b)
   }
  return a.join('-')
}
0
Parikshit Sarkar 17 févr. 2020 à 12:34