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)

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 :

$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