Page 1 sur 1

Souci avec la fonction "substr"

Posté : 28 avr. 2011, 15:46
par Jonathan
Bonjour,

Comme le titre le laisse entendre, j'ai un léger problème avec la fonction substr ; Je m'explique.
Dans ma base de données, j'ai une table dans laquelle il y a Date_de_début et Date_de_fin. J'y ai mis l'enregistrement suivant :
-Date_de_début : 12/10/11
-Date_de_fin : 13/10/11

Ma question est la suivante : Que dois-je modifier dans le code suivant pour qu'à l'affichage de la table, j'aie la date comme écrite dans la BD, et non tronquée (du style "12/1")?
$JourDebut = substr($Row2['Date_de_début'], 8, 2);
$MoisDebut = substr($Row2['Date_de_début'], 5, 2);
$AnneeDebut = substr($Row2['Date_de_début'], 0, 4);
$JourFin = substr($Row2['Date_de_fin'], 8, 2);
$MoisFin = substr($Row2['Date_de_fin'], 5, 2);
$AnneeFin = substr($Row2['Date_de_fin'], 0, 4);
Je me suis renseigné sur cette fonction, et ai tenté de bidouiller les chiffres, en vain. Je n'obtiens jamais ce que je veux...

Re: Souci avec la fonction "substr"

Posté : 28 avr. 2011, 15:51
par xTG
Le prototype de la fonction : substr( chaîne , position de début de la découpe , longueur de la découpe )
Donc quand on regarde :
$AnneeDebut = substr($Row2['Date_de_début'], 0, 4);
Alors que dans ta date l'année est sur 2 chiffres on voit tout de suite le problème.

Enfin le problème surtout c'est que l'année n'est pas le premier chiffre mais le dernier...
Sinon si le but c'est de formater l'affichage de la date tu peux le faire directement avec la fonction date().

Re: Souci avec la fonction "substr"

Posté : 28 avr. 2011, 15:52
par nhachet
JE te conseille d'utiliser le explode. Exemple :
$date = '12/10/11';
list($day, $month, $year) = explode('/', $date);

echo $day . ' ' . $month . ' ' .$year;

Re: Souci avec la fonction "substr"

Posté : 28 avr. 2011, 16:03
par Mazarini
Bonjour,

Tout d'abord, il faut faire un echo '/',$row2('Date_de_début'),'/'; pour vérifier ce que contient vraiment la variable.
Ensuite tu pourras compter les caractères pour faire le bon découpage sachant que le premier caractère est 0 avec substr().

Dans le select, je te conseille de faire date_format(...) plutôt que directement la date pour être sur du format dans PHP. Sinon celà peut varier en fonction du paramétrage de mysql.

Re: Souci avec la fonction "substr"

Posté : 28 avr. 2011, 16:33
par Jonathan
Merci à tous les trois, je viens d'expérimenter en ayant suivi vos conseils, et résultat ? Ca marche !