OVH Cloud OVH Cloud

strtotime le retour

15 réponses
Avatar
Etienne SOBOLE
salut

j'en suis toujours a essayer de traiter mes dates...
et me question est comment
remplacer
Mar, 28 Mar 2005 16:32:16 +0200
par
Mon, 28 Feb 2005 16:32:16 +0200

y a t-il un un moyen d'utiliser un tableau de correspondance pour les jours
et un autre pour les mois.
mon expression regulière de recherche est:
/(\w+), (\d+) (\w+)(.*)/i";
mais commet utiliser preg_replace pour remplacer
Lun par Mon
et
Fev par Feb
???

j'ai essayé ca:
$tJour = array(
'Lun' => 'Mon',
'Mar' => 'Tue',
'Mer' => 'Wed',
'Jeu' => 'Thu',
'Ven' => 'Fri',
'Sam' => 'Sat',
'Dim' => 'Sun');

$tMois = array(
'Jan' => 'Jan',
'Fev' => 'Feb',
'Mar' => 'Mar',
'Avr' => 'Apr',
'Mai' => 'May',
'Jun' => 'Jun',
'Jui' => 'Jul',
'Aou' => 'Aug',
'Sep' => 'Sep',
'Oct' => 'Oct',
'Nov' => 'Nov',
'Dec' => 'Dec');

$pattern = "/(\w+), (\d+) (\w+)(.*)/i";
$replacement = "\$tJour\[$1\], $2 $tMois\[$3\]$4";
$tmpdate = preg_replace($pattern, $replacement, $date);

mais ca ne marche pas malheureuseument....
Etienne

5 réponses

1 2
Avatar
Olivier Miakinen


Mais ma solution n'ayant pas eu une seule réponse, j'en conclus qu'elle
est parfaite, cela ne m'étonne pas ;)


hehe
Mais ne ris[q]ue t-il pas d'y avoir des problemes avec d'autres langues ?


Bien sûr que si. En moldo-samovar, lundi s'écrit "Marlun", mardi s'ecrit
"Mermar", mercredi s'écrit "Jeumer", etc., avec donc les abréviations
suivantes :

Mar = lundi
Mer = mardi
Jeu = mercredi
Ven = jeudi
Sam = vendredi
Dim = samedi
Lun = dimanche

;-)

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.


Avatar
CrazyCat
Etienne SOBOLE wrote:
Mais ne risue t-il pas d'y avoir des probleme avec d'autres langue?


Non, si l'on fait ce que j'avais commencé à faire et que j'ai abandonné
par flemmardise:
tout les jours suivis de la chaine ", " et tous les mois suivis de la
chaine " " permet de régler le problème quelque soit la langue.

Pour une fois que ce qui marche pour l'exception marche pour tout, on ne
va pas se géner non?



--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net

Avatar
Etienne SOBOLE
en fait je ne parlais pas exactement de ce champs, mais finalement ils
doivent retourner la même valeur.
Le champs udate est un attribut du mail qui est mis à jour par le serveur,
c'est un timestamp UNIX (la date n'est donc pas lisible directement il
faut la convertir).
Il faut voir du côté des fonctions imap pour y accéder.


Oui et d'ailleurs de quel champ parles tu???
parce que effectivement j'ai voulu changer a ca c'est avéré pas si simple
....

en fait, j'ai pas trouvé un champ directement fournit en mktime (enfin pas
avec le fct du php)
donc je me suis dis qu'a cela ne tienne je vais trier par les UID des mails
qui sont croissant (dixit) la norme.

sauf que si tu deplaces des mails, d'un repertoire a l'autre ils prennent un
nouvel ID.
et donc sans doute une nouvelle date serveur...

donc tu range un mail qui date de 2003 dans un repertoire
apres tu le remet dans le INBOX...
et hop t'es marron. Ta date est celle a laquelle tu as deplacé le mail et
plus celle a laquelle il a eté envoyé ou reçu la premiere fois... snif. la
vie est dure....

Etienne

Avatar
WebRod
Il faut voir du côté des fonctions imap pour y accéder.


Oui et d'ailleurs de quel champ parles tu???
parce que effectivement j'ai voulu changer a ca c'est avéré pas si simple


le champs "udate" qui est retourné par les fonction imap:
http://fr3.php.net/manual/fr/function.imap-headerinfo.php

Qu'est ce qui est pas si simple???


en fait, j'ai pas trouvé un champ directement fournit en mktime (enfin pas
avec le fct du php)
si si



donc je me suis dis qu'a cela ne tienne je vais trier par les UID des
mails > qui sont croissant (dixit) la norme.

sauf que si tu deplaces des mails, d'un repertoire a l'autre ils prennent
un nouvel ID.


ah bo, je savais pas, jamais testé, c'est débile....

et donc sans doute une nouvelle date serveur...
non probablement pas, par définition c'est la date de récéption du mail par

le serveur.
Elle ne doit pas changer

donc tu range un mail qui date de 2003 dans un repertoire
apres tu le remet dans le INBOX...
et hop t'es marron. Ta date est celle a laquelle tu as deplacé le mail et
plus celle a laquelle il a eté envoyé ou reçu la premiere fois... snif. la
vie est dure....


Peut-être pas, tu es bien pessimiste.
test avec la fonction que je t'ai dit.

Rod


Avatar
Etienne SOBOLE
le champs "udate" qui est retourné par les fonction imap:
http://fr3.php.net/manual/fr/function.imap-headerinfo.php


Ah oui merci.
je l'avais zappé celui ;)

Peut-être pas, tu es bien pessimiste.
test avec la fonction que je t'ai dit.


oui vais faire ca.
merci..

Etienne

1 2