Souci avec la fonction "substr"

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Souci avec la fonction "substr"

Re: Souci avec la fonction "substr"

par Jonathan » 28 avr. 2011, 16:33

Merci à tous les trois, je viens d'expérimenter en ayant suivi vos conseils, et résultat ? Ca marche !

Re: Souci avec la fonction "substr"

par Mazarini » 28 avr. 2011, 16:03

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"

par nhachet » 28 avr. 2011, 15:52

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"

par xTG » 28 avr. 2011, 15:51

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().

Souci avec la fonction "substr"

par Jonathan » 28 avr. 2011, 15:46

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...