[PHP] Probléme de conversion de date

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

Lord_Coder
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 243
Inscription: Sam Avr 15, 2006 18:25

[PHP] Probléme de conversion de date

Message le Dim Juin 25, 2006 12:13

Salut ,

je voudrais en effet convertir une date de type 2006-06-01T13:33:14+02:00 en un timestamp , et pour celà j'utilise strtotime , mais ça ne marche absolument pas , pourriez vous m'aider s'il vous plait ?

Merci d'avance .

jobi1722
Nouveau WRInaute
 
Messages: 15
Inscription: Mar Juin 22, 2004 14:41

Message le Dim Juin 25, 2006 13:39

Salut,

utilises les expressions régulières !!!

Code: Tout sélectionner

$string = "2006-06-01T13:33:14+02:00";

$expr = "^([^T]*)T([^\+]*)\+";
ereg($expr,$string,$tab);
$timestamp = strtotime($tab[1]." ".$tab[2]);



La variable $timestamp contient ce que tu veux :)

++


BettyBoop
Nouveau WRInaute
 
Messages: 7
Inscription: Sam Juin 24, 2006 13:08

Message le Dim Juin 25, 2006 15:15

Salut

Moi qui ai des difficultés avec les expressions régulières j'utilise mktime()

Code: Tout sélectionner
$ta_date="2006-06-01T13:33:14+02:00";
$day=substr($ta_date,0,2);
$month=substr($ta_date,3,2);
$year=substr($ta_date,6,4);
$hour=...
$min=...
$sec=...
$ton_time=mktime($hour,$min,$sec,$month,$day,$year);

:lol:

Lord_Coder
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 243
Inscription: Sam Avr 15, 2006 18:25

Message le Dim Juin 25, 2006 17:52

Merci jobi1722 , je n'avais pas pensé aux expressions réguliéres , mais j'ai optimisé ta regex pour qu'elle soit utilisable avec le moteur PCRE ( et pas POSIX comme ereg ) car les PCRE sont plus rapides et supportent des paramétres après les délimiteurs ( ici # ) , toi tu fais [^T] car le moteur POSIX est gourmand et si tu faisait .* il va capturer tout , mais il est possible avec les PCRE d'enlever cette gourmandise et utiliser en même temps .* , c'est avec le paramétre U .
Voilà :
Code: Tout sélectionner
#^(.*)T(.*)\+([0-9]{2}):([0-9]{2})#miU

Donc je ferai :
$
Code: Tout sélectionner
string = "2006-06-01T13:33:14+02:00";

$expr = "#^(.*)T(.*)\+([0-9]{2}):([0-9]{2})#miU";
preg_match($expr,$string,$tab);
$timestamp = strtotime($tab[1]." ".$tab[2]." +".$tab[3].$tab[4]);


Et merci à toi aussi BettyBoop , il vaut mieux utiliser les regex car la date que je veux convertir va varier , l'année va peut-être être représenter en deux chiffres !

Merci en tout cas pour vos réponses .

PS : j'essaie de faire un lecteur RSS en php qui va supporter tous les formats :P


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités