Page 1 sur 1

récupération de la date d'un email

Posté : 29 févr. 2008, 16:20
par Chuck MO
Bonjour,

Quelqu'un pourrait-il m'indiquer comment faire pour récupérer une date "propre" à partir d'un email.

J'ai utilisé la fonction PEAR suivante :
$mail = Mail_mimeDecode::decode($mimeParams);
suivie de :
$date = $mail->headers['date'];
Ca marche mais j'obtiens par exemple : Wed, 27 Feb 2008 19:42:16 +0100

dont j'aimerais tirer : 27-02-2008 et 19:42

N'y a-t-il pas chez PEAR ou ailleurs une manière d'obtenir une date et une heure propre ?
Si quelqu'un a une idée, je suis preneur.

Merci d'avance!

Posté : 29 févr. 2008, 16:23
par guilt92
Je pense qu'avec la fonction date() de php tu dois pouvoir créer une nouvelle date qui prend la valeur retourné par le mail et après l'afficher differemment en jouant sur les paramêtres de la fonction...

Posté : 29 févr. 2008, 16:38
par Chuck MO
Ben ça a pas l'air de marcher, la fonction date n'a pas l'air de savoir quoi faire avec la chaine 'Wed, 27 Feb 2008 19:42:16 +0100'.
$date = $mail->headers['date'];
$date = date("d.m.y",$date);
echo $date;
et j'obtiens : "Warning: date() expects parameter 2 to be long, string given in..."

En fait il faudrait parvenir à passer d'un affichage "DATE_RFC822" à un "d-m-a".

Une autre idée ? peut-être avec date() en effet...

merci

Posté : 29 févr. 2008, 16:45
par Hywan
Hey,

tente voir ça :
<?php

header('Content-type: text/plain');

ini_set('date.timezone', 'Europe/Paris');

echo strtotime('Wed, 27 Feb 2008 19:42:16 +0100');

echo "\n\n";

echo date('d-m-Y H:i', strtotime('Wed, 27 Feb 2008 19:42:16 +0100'));
;-). Je te laisse lire la documentation de strtotime :).

Le ini_set, c'est juste pour que strtotime ne te cause pas de soucis si jamais ton serveur n'est pas configuré à fond. Tout est expliqué dans la documentation de toute façon :).

Posté : 29 févr. 2008, 16:46
par d0m
Tu peux essayer du coté de strtotime, reste à vérifier si ton format de date est conforme au format demandé par la fonction.

Posté : 29 févr. 2008, 16:47
par Hywan
Tu peux essayer du coté de strtotime, reste à vérifier si ton format de date est conforme au format demandé par la fonction.
Mouhaha, grillé :D.


:roll:

c'est bon

Posté : 29 févr. 2008, 16:48
par Chuck MO
Merci, je viens de trouver...
$date = $mail->headers['date'];
$date = date("d/m/Y G:i",strtotime ($date));
echo $date;
et ça donne "27/02/2008 19:42" à partir de "Wed, 27 Feb 2008 19:42:16 +0100".

Tu avais donc raison HyWaN, il fallait utiliser strtotime...

Merci à tous les 2...