note 26530 added to function.strtotime

From: Date: Sun, 03 Nov 2002 17:23:21 +0000
Subject: note 26530 added to function.strtotime
Groups: php.notes 
Request: Send a blank email to php-notes+get-38925@lists.php.net to get a copy of this message
Pour les personnes françaises, une fonction qui traduit pour pouvoir utiliser strtotime() en français : function translate_date($date) { //traduction prochain, dernier if (preg_match("%\s*(.*)\s*[Pp]rochain[e]?\s*(.*)%", $date, $regs)) { $date = 'next '.$regs[1].$regs[2] ; } elseif (preg_match("%\s*(.*)\s*[Dd]ernier\s*(.*)%", $date, $regs)) { $date = 'last '.$regs[1].$regs[2] ; } //mise en minusclue (pour ne pas avoir de complication) $date = strtolower($date) ; //Trad. jours //mise en place des arrays (un anglais, l'autre français qui vont servir pour la trad) //preg_replace utilisé pour prende le mot entier et éviter par ex demain = deMayn... $j_fr = array('lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche') ; $j_en = array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday') ; //traduction for ($i=0; $i < 7; $i++) { $date = preg_replace("/\b".$j_fr[$i]."\b/", " ".ucfirst($j_en[$i])." ", $date) ; } //Trad. mois $m_fr = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre' ) ; $m_en = array('january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december' ) ; for ($i=0; $i < 12; $i++) { $date = preg_replace("/\b".$m_fr[$i]."\b/", " ".ucfirst($m_en[$i])." ", $date) ; } //Trad. abréviations mois //Traduction fév->fev et aoû->aou $date = preg_replace("/\bfév\b/", 'fev' , $date) ; $date = preg_replace("/\baoû\b/", 'aou' , $date) ; $abr_m_fr = array('jan', 'fev', 'mar', 'avr', 'mai', 'juin', 'juil', 'aou', 'sep', 'oct', 'nov', 'déc') ; $abr_m_en = array('jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec') ; for ($i=0; $i < 12; $i++) { $date = preg_replace("/\b".$abr_m_fr[$i]."\b/", " ".ucfirst($abr_m_en[$i])." ", $date) ; } //Autre $date = preg_replace("/\bdemain\b/" , ' Tomorrow ' , $date) ; $date = preg_replace("/\bhier\b/" , ' Yesterday ', $date) ; $date = preg_replace("/\baujourd\'hui\b/", ' Today ' , $date) ; $date = preg_replace("/\bmaintenant\b/" , ' now ' , $date) ; $date = preg_replace("/\bjours\b/" , ' Days ' , $date) ; $date = preg_replace("/\bjour\b/" , ' Day ' , $date) ; $date = preg_replace("/\bsemaines\b/" , ' Weeks ' , $date) ; $date = preg_replace("/\bsemaine\b/" , ' Week ' , $date) ; $date = preg_replace("/\bmois\b/" , ' Months ' , $date) ; $date = preg_replace("/\ban\b/" , ' Year ' , $date) ; $date = preg_replace("/\bans\b/" , ' Years ' , $date) ; $date = preg_replace("/\bheures\b/" , ' Hours ' , $date) ; $date = preg_replace("/\bheure\b/" , ' Hour ' , $date) ; $date = preg_replace("/\bminutes\b/" , ' Minutes ' , $date) ; $date = preg_replace("/\bminute\b/" , ' Minute ' , $date) ; $date = preg_replace("/\s+à\s+/" , ' ' , $date) ; $date = preg_replace("/\bla\b/" , ' ' , $date) ; $date = preg_replace("/(\d+)h(\d+)/" , "\\1:\\2" , $date) ; $date = preg_replace("/(\d+)h/" , "\\1" , $date) ; $date = preg_replace("/(\d+)min/" , "\\1" , $date) ; $date = preg_replace("/(\d+)m/" , "\\1" , $date) ; return $date ; } Vous n'avez plus qu'a traduire la date avant de la mettre dans le strtotime. Ex : $date = "Lundi prochain" ; $date = translate_date($date) ; strtotime($date) ; -- http://www.php.net/manual/en/function.strtotime.php http://master.php.net/manage/user-notes.php?action=edit+26530 http://master.php.net/manage/user-notes.php?action=delete+26530 http://master.php.net/manage/user-notes.php?action=reject+26530

« previous php.notes (#38925) next »