Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- * Convertit toutes les dates en FR en utilisant la fonction date de PHP
- * Examples :
- * - DateFr::date('F j, Y, g:i a');
- * - DateFr::date('\C\\\'\e\s\t \l\e jS \j\o\u\r.');
- * - DateFr::date('DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000)');
- * - DateFr::date(DateFr::DATE_FR_FULL);
- */
- class DateFr {
- const DATE_FR_FULL = '\L\e l d F Y';
- const DATE_FR_SHORT = '\L\e D d M Y';
- const TIME_FR = '\à H \h i';
- public static $mon_full_names = array(
- '', 'Janvier', 'Février', 'Mars', 'Avril',
- 'Mai', 'Juin', 'Juillet', 'Août',
- 'Septembre', 'Octobre', 'Novembre', 'Decembre'
- );
- public static $mon_short_names = array(
- '', 'Jan', 'Fev', 'Mar', 'Avr', 'Mai',
- 'Juin', 'Juil', 'Aoû', 'Sep', 'Oct',
- 'Nov', 'Dec'
- );
- public static $day_full_names = array(
- '', 'Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'
- );
- public static $day_short_names = array(
- '', 'Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'
- );
- public static function french_suffix($number)
- {
- if ($number == 1) {
- return 'er';
- }
- return 'ème';
- }
- public static function is_ascii($str)
- {
- return ! preg_match('/[^\x00-\x7F]/S', $str);
- }
- public static function strlen($str)
- {
- if (self::is_ascii($str)) {
- return strlen($str);
- }
- return strlen(utf8_encode($str));
- }
- public static function date_addslashes($str) {
- $str_len = self::strlen($str);
- $str_str = '';
- for ($i = 0; $i < $str_len; $i++) {
- $str_str .= '\\'.$str[$i];
- }
- return $str_str;
- }
- public static function date_rfc2822($timestamp) {
- return self::date_addslashes(self::$day_short_names[date('n', $timestamp)]).'\, d '.self::date_addslashes(self::$mon_short_names[date('n', $timestamp)]).' Y H:i:s O';
- }
- static public function date($format, $timestamp = null)
- {
- if (!$timestamp) {
- $timestamp = time();
- }
- $format_str = '';
- $format_len = self::strlen($format);
- for ($i = 0; $i < $format_len; $i++) {
- switch ($format[$i]) {
- case 'D': $format_str .= self::date_addslashes(self::$day_short_names[date('j', $timestamp)]); break;
- case 'l': $format_str .= self::date_addslashes(self::$day_full_names[date('j', $timestamp)]); break;
- case 'S': $format_str .= self::date_addslashes(self::french_suffix(date('j', $timestamp))); break;
- case 'F': $format_str .= self::date_addslashes(self::$mon_full_names[date('n', $timestamp)]); break;
- case 'M': $format_str .= self::date_addslashes(self::$mon_short_names[date('n', $timestamp)]); break;
- case 'r': $format_str .= self::date_rfc2822($timestamp); break;
- case '\\': if ($i < $format_len) {
- $i++;
- $format_str .= $format[$i-1];
- // Fix problem UTF-8 encode
- if (!self::is_ascii($format[$i]) && $i < $format_len) {
- $i++;
- $format_str .= $format[$i-1];
- }
- };
- default: $format_str .= $format[$i]; break;
- }
- }
- return date($format_str, $timestamp);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement