+ // utiliser strtotime en dernier ressort
+ // en nettoyant le jour qui prefixe parfois la date, suivi d'une virgule
+ // et les UT qui sont en fait des UTC
+ $la_date_c = preg_replace("/^\w+,\s*/ms","",$la_date);
+ $la_date_c = preg_replace("/UT\s*$/ms","UTC",$la_date_c);
+ if ($s=strtotime($la_date)
+ OR $s=strtotime($la_date_c))
+ return $s;
+
+ // essayons de voir si le nom du mois est dans la langue du flux et remplacons le
+ // par la version anglaise avant de faire strtotime
+ if ($lang){
+ // "fr-fr"
+ $lang = reset(explode("-",$lang));
+ static $months = null;
+ if (!isset($months[$lang])){
+ $prev_lang = $GLOBALS['spip_lang'];
+ changer_langue($lang);
+ foreach(range(1,12) as $m){
+ $s = _T("date_mois_$m");
+ $months[$lang][$s] = date("M",strtotime("2013-$m-01"));
+ $s = _T("date_mois_".$m."_abbr");
+ $months[$lang][$s] = date("M",strtotime("2013-$m-01"));
+ $months[$lang][trim($s,".")] = date("M",strtotime("2013-$m-01"));
+ }
+ changer_langue($prev_lang);
+ }
+ spip_log($la_date_c,"dbgs");
+ foreach($months[$lang] as $loc=>$en){
+ if (stripos($la_date_c,$loc)!==false){
+ $s=str_ireplace($loc,$en,$la_date_c);
+ if ($s=strtotime($s))
+ return $s;
+ }
+ }
+ }