Class PHP DateTime en Français
Cette class PHP étend la class native DateTime pour en traduire l’affichage sur votre site. Tous les termes non-numériques sont traduits : jours de la semaine (l
) et mois (F
), ainsi que leur version courte (respectivement D
& M
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
class DateTimeFrench extends DateTime { public function format($format='j M Y'){ $days_full = array( 'Monday' => 'Lundi', 'Tuesday' => 'Mardi', 'Wednesday' => 'Mercredi', 'Thursday' => 'Jeudi', 'Friday' => 'Vendredi', 'Saturday' => 'Samedi', 'Sunday' => 'Dimanche' ); $days_small = array( 'Mon' => 'Lun', 'Tue' => 'Mar', 'Wed' => 'Mer', 'Thu' => 'Jeu', 'Fri' => 'Ven', 'Sat' => 'Sam', 'Sun' => 'Dim' ); $months_full = array( 'January' => 'Janvier', 'February' => 'Février', 'March' => 'Mars', 'April' => 'Avril', 'May' => 'Mai', 'June' => 'Juin', 'July' => 'Juillet', 'August' => 'Août', 'September' => 'Septembre', 'October' => 'Octobre', 'November' => 'Novembre', 'December' => 'Décembre' ); $months_small = array( 'Feb' => 'Fév', 'Apr' => 'Avr', 'May' => 'Mai', 'Jun' => 'Juin', 'Jul' => 'Juil', 'Aug' => 'Août', 'Dec' => 'Déc' ); $display = parent::format($format); if( strstr($format, 'l') ){ $display = str_replace(array_keys($days_full), array_values($days_full), $display); } if( strstr($format, 'D') ){ $display = str_replace(array_keys($days_small), array_values($days_small), $display); } if( strstr($format, 'F') ){ $display = str_replace(array_keys($months_full), array_values($months_full), $display); } if( strstr($format, 'M') ){ $display = str_replace(array_keys($months_small), array_values($months_small), $display); } return $display; } } |
Utilisation
Pour l’utiliser, vous devez remplacer vos instances DateTime() par DateTimeFrench(), et l’affichage en Français sera automatique. Par exemple :
1 2 |
$dt = new DateTimeFrench('2018-02-02 20:30:00'); echo $dt->format('l j F Y à H\hi'); // Vendredi 2 Février 2018 à 20h30 |
Source
Le code-source est également sur GitHubGist : PHP DateTimeFrench