
En JavaScript il n’existe pas de fonction permettant de formater une date. En parcourant le web, j’ai trouvé la bibliothèque jquery-dateFormat. Bien que son non contiennent jQuery elle ne nécessite pas obligatoirement l’usage de jQuery.
Vous trouverez cette bibliothèque sous la former 4 fichiers différents :
- jquery-dateFormat.js version pour usage avec jQuery
- jquery-dateFormat.min.js version minifié (compression pars suppression des espaces et autre caractère inutile) pour usage avec jQuery
- dateFormat.js version ne nécessitant pas jQuery
- dateFormat.min.js version minifié ne nécessitant pas jQuery
Qu’apporte cette bibliothèque :
- licence MIT. Donc peut-être intégré dans un projet commercial.
- Très légère : moins de 5Ko et semble être la plus légère des bibliothèques de formatages de date.
- Fonctionne avec jQuery si présent, la syntaxe d’usage est :
$.format(...)
- fonctionne aussi sans jQuery, la syntaxe d’usage est alors :
DateFormat.format(...)
. - Syntaxe basée sur la classe Java « java.text.SimpleDateFormat« .
Voici sa nomenclature de formatage avec pour exemple la date 9/01/2016 13h55 56seconde et 45ms- yy = année sur deux digits (donne « 16 »)
- yyyy = année (donne « 2016 »)
- M = numéro de moins allant de 1 à 12 (donne « 1 »)
- MM = numéro de moins sur deux digits allant de 01 à 12 (donne « 01 »)
- MMM = abréviation du mois en anglais : Jan, Feb … Dec (donne « Jan »)
- MMMM = nom du mois en anglais : January, February … December. (donne « january »)
- d = numéro de jour allant de 1 à 31 (donne « 9 »)
- dd = numéro de jour sur deux digits allant de 1 à 31 (donne « 09 »)
- ddd = nom du jour en anglais : Monday, Tuesday … Sunday (donne « Saturday »)
- E = Abréviation du non du jour : (Mon, Tue … Sun (donne « Sat »)
- D – ordinal du numéro du jour en anglais : 1st, 2nd, 3rd, 21st, 22nd, 23rd, 31st, 4th… (donne « 6nd »)
- h = heure allant de 0 à 12 (donne « 1 »)
- hh = heure sur deux digit allant de 00-12 (donne « 01 »)
- H = heure du jour allant de 0-23 (donne « 13 »)
- HH = heure du jour sur deux digits allant de 00-23 (donne « 13 »)
- mm = minute (donne « 55 »)
- ss = seconde (donne « 56 »)
- SSS = millisecondes (donne « 45 »)
- a = marqueur anglais de journée : AM , PM (donne « PM »)
- p = marqueur anglais de journée a.m., p.m. marker (donne « p.m »)
- une fonction d’affichage en texte anglais du temps écoule de maintenant à la date :
prettyDate
()jQuery.format.prettyDate(new Date()) // => "just now" jQuery.format.prettyDate(new Date().getTime()) // => "just now" jQuery.format.prettyDate("2008-01-28T20:24:17Z") // => "2 hours ago" jQuery.format.prettyDate("2008-01-27T22:24:17Z") // => "Yesterday" jQuery.format.prettyDate("2008-01-26T22:24:17Z") // => "2 days ago" jQuery.format.prettyDate("2008-01-14T22:24:17Z") // => "2 weeks ago" jQuery.format.prettyDate("2007-12-15T22:24:17Z") // => "more than 5 weeks ago"
un usage de code sans jQuery
<script> document.write(DateFormat.format.date("2009-12-18 10:54:50.546", "Test: dd/MM/yyyy")); document.write(DateFormat.format.date("Wed Jan 13 10:43:41 CET 2010", "dd~MM~yyyy")); </script>
Le gros défaut de cette bibliothèque est de ne pas être localisé, l’affichage des textes de date son en anglais. Vous pouvez cependant apporter votre contribution de localisation à l’auteur.