note 89102 added to function.date
| From: | bastien at selfbuild dot fr | Date: | Sat, 21 Feb 2009 20:39:51 +0000 |
| Subject: | note 89102 added to function.date | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-150930@lists.php.net to get a copy of this message | ||
fonction date en français avec les mêmes paramètres et options :
<?php
$datefr_caracteres=array('d', 'D', 'j', 'l', 'N',
'S', 'w', 'z', 'W', 'F', 'm',
'M', 'n', 't', 'L', 'o', 'Y',
'y', 'a', 'A', 'B', 'g', 'G',
'h', 'H', 'i', 's', 'u', 'e',
'I', 'O', 'P', 'T', 'Z', 'c',
'r', 'U');
$datefr_remplacements=array('\\d', '\\D', '\\j', '\\l',
'\\N', '\\S', '\\w', '\\z', '\\W',
'\\F', '\\m', '\\M', '\\n', '\\t',
'\\L', '\\o', '\\Y', '\\y', '\\a',
'\\A', '\\B', '\\g', '\\G', '\\h',
'\\H', '\\i', '\\s', '\\u', '\\e',
'\\I', '\\O', '\\P', '\\T', '\\Z',
'\\c', '\\r', '\\U');
$datefr_jours=array('Dimanche', 'Lundi', 'Mardi',
'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
$datefr_mois=array(1=>'Janvier', 'Février', 'Mars',
'Avril', 'Mai', 'Juin', 'Juillet',
'Août', 'Septembre', 'Octobre', 'Novembre',
'Décembre');
$datefr_mois3l=array(1=>'Jan', 'Fév', 'Mar',
'Avr', 'Mai', 'Jun', 'Jul', 'Aoû',
'Sep', 'Oct', 'Nov', 'Déc');
function date_escape($string)
{
global $datefr_caracteres,$datefr_remplacements;
return str_replace($datefr_caracteres,$datefr_remplacements,$string);
}
function datefr($format,$timestamp=false)
{
global $datefr_cache;
$datefr_cache=null;
if(isset($datefr_cache[$timestamp]))
{
return $datefr_cache[$timestamp];
}
else
{
global $datefr_jours,$datefr_mois,$datefr_mois3l;
if(empty($timestamp)) $timestamp=time();
$offset=0;
for($i=0;$i<strlen($format);$i++)
{
if(false===strpos('DlSFM',$format[$i]))
continue;
$cas=0;
while($format[$i-1-$cas]=='\\') $cas++;
if($cas%2==1)
continue;
if(!isset($datefr_cache[$timestamp][$format[$i]]))
{
switch($format[$i])
{
case 'l': $car=date_escape($datefr_jours[date('w',$timestamp)]); break;
case 'D':
$car=date_escape(substr($datefr_jours[date('w',$timestamp)],0,3)); break;
case 'F': $car=date_escape($datefr_mois[date('n',$timestamp)]); break;
case 'M': $car=date_escape($datefr_mois3l[date('n',$timestamp)]); break;
case 'S': if(date('j',$timestamp)==1) $car='\\e\\r'; else
$car=''; break;
default: $car='';
}
$datefr_cache[$timestamp][$format[$i]]=$car;
}
else
{
$car=$datefr_cache[$timestamp][$format[$i]];
}
$return.=substr($format,$offset,$i-$offset).$car;
$offset=$i+1;
}
$return.=substr($format,$offset);
$return=date($return,$timestamp);
$datefr_cache[$timestamp]=$return;
return $return;
}
}
// Affiche Dimanche 1er Février 2009
echo datefr('l jS F Y',1233488304);
// Affiche de le jour de la semaine en français en abrégé
echo datefr('D');
?>
----
Server IP: 89.31.146.176
Probable Submitter: 82.126.253.136
----
Manual Page -- http://www.php.net/manual/en/function.date.php
Edit -- https://master.php.net/note/edit/89102
Del: integrated -- https://master.php.net/note/delete/89102/integrated
Del: useless -- https://master.php.net/note/delete/89102/useless
Del: bad code -- https://master.php.net/note/delete/89102/bad+code
Del: spam -- https://master.php.net/note/delete/89102/spam
Del: non-english -- https://master.php.net/note/delete/89102/non-english
Del: in docs -- https://master.php.net/note/delete/89102/in+docs
Del: other reasons-- https://master.php.net/note/delete/89102
Reject -- https://master.php.net/note/reject/89102
Search -- https://master.php.net/manage/user-notes.php