Conversion de date PHP

Voici deux methodes de conversion de date à partir d'une date au format RFC 2822 ( Fri, 21 Apr 2006 13:58:06 +0200 (CEST) ) à l'aide de php:

Update du 29.06.2006 : Ainsi que dans l'autre sense, date au format YYYY-MM-JJ à RFC 2822 (Date to RFC2822 php)

RFC 2822 a Timestamp (Rfc2822 To Timestamp)

$date="Fri, 21 Apr 2006 13:58:06 +0200 (CEST)";

function Rfc2822ToTimestamp($date){
$aMonth = array(
"Jan"=>"1", "Feb"=>"2", "Mar"=>"3", "Apr"=>"4", "May"=>"5",
"Jun"=>"6", "Jul"=>"7", "Aug"=>"8", "Sep"=>"9", "Oct"=>"10",
"Nov"=>"11", "Dec"=>"12");

list( , $day, $month, $year, $time) = explode(" ", $date);
list($hour, $min, $sec) = explode(":", $time);
$month = $aMonth[$month];

return mktime($hour, $min, $sec, $month, $day, $year);
}

$date=Rfc2822ToTimestamp($date);
ou :
echo "Rfc2822ToTimestamp($date)";

 

RFC 2822 a DateTime (Rfc2822 To DateTime)

$date=str_replace(" "," ",$date);
$date=split(" ",$date);

//on place le tout tout beau dans une zoli variable : (chaque partie de la date RFC en dans un tableau)
$date="$date[1] $date[2] $date[3] $date[4]";

echo"<br> nouvelle date : $date <br>";

 

Biensure, on peut faire une jolie fonction pour tout ceci, mais franchement pas le temps la :-)

Amélioration possible :

Les mois en francais

$moisen = array("Jan","Fev","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$moisfr = array("Jan","Fév","Mar","Avr","Mai","Juin","Juil","Aout","Sep","Oct","Nov","Déc");
$date=str_replace($moisen, $moisfr, $date);

Les mois en chiffres
$moisen = array("Jan","Fev","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$moischif = array("01","02","03","04","05","06","07","08","09","10","11","12");

$date=str_replace($moisen, $moischifr, $date);

Date au format Mysql

$datesql="$datel[3]-$date[2]-$date[1] $date[4]";
$moisen = array("Jan","Fev","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$moischifr = array("01","02","03","04","05","06","07","08","09","10","11","12");

$datesql=str_replace($moisen, $moischifr, $datesql);

Dès que j'ai functionalisé ceci je met à jour :)

 

Update du 29.06.2006 : Date to RFC2822 :

$VDateInsertion ="2006-06-29";
$VDateInsertion = date("r",mktime(00, 00, 00, substr($VDateInsertion, 5,2), substr($VDateInsertion, -2), substr($VDateInsertion, 0, 4)));

Echo"$VDateInsertion";

$ladate="2007-12-12 09:45:00";

list($date, $hours) = split(' ', $ladate);
list($year,$month,$day) = split('-',$date);
list($hour,$min,$sec) = split(':',$hours);

$dateR = date(r,mktime($hour, $min, $sec, $month, $day, $year));
echo"$dateR";


Publié le 16 Mai 2006 par luca | Ecouter l'article

Publié dans : Programmation

Accueil Précédent Suivant