Changer simplement une date du format français au format ISO

Il arrive fréquemment qu’on ait besoin de transformer une date du format français (jj/mm/aaaa) au format ISO-8601 (aaaa-mm-jj, pour alimenter une base de données, par exemple).

On utilise souvent les expressions régulières pour ce faire, mais elles ne sont pas indispensables. Voici une astuce pour le faire en une seule ligne de JavaScript ou PHP.

JavaScript

date.split('/').reverse().join('-');

PHP

implode('-', array_reverse(explode('/', $date)));

Le fonctionnement des deux scripts est exactement le même (Bien que la version JavaScript soit plus lisible) et partent du principe que l’ordre des arguments est inversé dans les deux cas (L’astuce ne fonctionnerait pas sur une date au format américain [1], par exemple). Voici les étapes suivies par le script :

  • On transforme la chaîne en tableau, en utilisant le séparateur « / » (split() et explode())
  • On inverse les données du tableau ainsi obtenu (reverse() et array_reverse())
  • On réassemble le tout sous forme d’une nouvelle chaîne avec cette fois le tiret « - » en guise de séparateur (join() et implode())

Notes

[1Pour mémoire, mm/jj/aaaa

1 commentaire sur "Changer simplement une date du format français au format ISO"

Lindsay

This is a very good tip especially to those new to the blogosphere.

Brief but very accurate information… Many thanks for
sharing this one. A must read article !

Laissez votre commentaire