changer le format d'une date [Réglé]
Tezz Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre Tezz
- Inscrit le : 26/04/2010
Je travailles sur un module qui affichera dans un tableau ordonné les admins, fondateurs, membres et invités.
J'aimerais inclure les dates de naissances au sein du tableau.
Dans la bdd elles sont sous formes : 1992-02-13
je souhaiterais en changer la forme pour obtenir quelque chose comme : né le 13 février 1992.
Y a-t-il une fonction spécifique phpboost pour arriver à ce résultat?
Merci pour votre attention

Juste pour info:
voici la partie qui va chercher la date(champ user_born) :
Code PHP :
$result = $Sql->query_while("SELECT * FROM ".PREFIX."member WHERE user_groups = 10", __LINE__, __FILE__); while( $row = $Sql->fetch_assoc($result) ) { $tpl->assign_block_vars('list_member2', array( 'LOGIN2' => $row['login'], 'AVATAR2' => $row['user_avatar'], 'BORN2' => $row['user_born'] )); }
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Par contre, les données proviennent de notre table membre, c'est ça ?
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
Tezz Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre Tezz
- Inscrit le : 26/04/2010
Merci encore pour le coup de pouce,
Le second si je ne me trompe pas

Donc par exemple, je peux utiliser la fonction : int get_day( ),
ce qui donnerait ceci?
:
Code PHP :
$result = $Sql->query_while("SELECT * FROM ".PREFIX."member WHERE user_groups = 10", __LINE__, __FILE__); while( $row = $Sql->fetch_assoc($result) ) { $tpl->assign_block_vars('list_member2', array( 'LOGIN2' => $row['login'], 'AVATAR2' => $row['user_avatar'], 'BORN2' => $row['user_born'], 'DAY' => int get_day( $row['user_born'] ), )); }
Mais je ne sais pas si je peux l'utiliser ainsi?
Édité par Tezz Le 27/04/2010 à 19h47
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Code PHP :
$result = $Sql->query_while("SELECT * FROM ".PREFIX."member WHERE user_groups = 10", __LINE__, __FILE__); while( $row = $Sql->fetch_assoc($result) ) { $tpl->assign_block_vars('list_member2', array( 'LOGIN2' => $row['login'], 'AVATAR2' => $row['user_avatar'], 'BORN2' => $row['user_born'], 'DAY' => $Date->get_day( $row['user_born'] ), )); }
SI la classe est déjà appellé,sinon tu l'importe et tu fais un
Tezz Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre Tezz
- Inscrit le : 26/04/2010
j'crois que d'ici quelques années j'commencerai a me débrouiller

Mais en ce qui concerne la date, c'est la date de naissance des membres que j'extrais de la table membres.
Donc, si je ne me trompes pas, en important la fonction "date" c'est celle d'aujourd'hui que j'obtiens et pas le jour de l'anniversaire du membre concerné.
En appliquant le code que tu m'as envoyé, j'obtiens la date du jour, et si je ne fais pas:
$Date = new Date ();
il me retourne une erreur.
J'imagine que ça ne doit pas être très compliqué, mais pour moi ça l'est

PS:
j'avais essayé de faire ceci , mais ça ne fonctionne pas d'avantage

Code PHP :
$requete = $Sql->query_while("SELECT DATE_FORMAT(user_born, "%Y/%m/%d") FROM ".PREFIX."member WHERE user_groups = 9", __LINE__, __FILE__);
Édité par Tezz Le 27/04/2010 à 20h14
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Avant ta bouble :
Code PHP :
import('util/Date');
Dans la boucle :
Code PHP :
$date = new Date(DATE_FROM_STRING, TIMEZONE_SYSTEM, $row['user_born'], 'y-m-d'); //La date formatée s'obtient comme ceci $date->format(DATE_FORMAT_SHORT);
Je note que je n'ai pas testé, donc je ne garantis pas que ça fonctionne. Si tu as une erreur, donne-nous la.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
Tezz Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre Tezz
- Inscrit le : 26/04/2010

J'ai juste remplacé "Date" par "date"
et mis le code
Code PHP :
$date = new Date(DATE_FROM_STRING, TIMEZONE_SYSTEM, $row['user_born'], 'y-m-d'), $date->format(DATE_FORMAT_SHORT),
me renvoie l'erreur suivante:
Suggestion : Undefined offset: 1 dans le fichier /web/teampff/www/playforfun/kernel/framework/util/date.class.php à la ligne 181
Suggestion : Undefined offset: 2 dans le fichier /web/teampff/www/playforfun/kernel/framework/util/date.class.php à la ligne 181
Suggestion : Undefined offset: 1 dans le fichier /web/teampff/www/playforfun/kernel/framework/util/date.class.php à la ligne 181
Suggestion : Undefined offset: 2 dans le fichier /web/teampff/www/playforfun/kernel/framework/util/date.class.php à la ligne 181
Ci joint le code complet; mais bon, sans réel intéret:
Code PHP :
<?php /*################################################## * test.php * ------------------- * begin : February 2010 * copyright : (C) MASSY Kévin * email : soldier_weasel@hotmail.fr * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ require_once('../kernel/begin.php'); require_once('../test/test_begin.php'); require_once('../kernel/header.php'); $tpl = new Template('test/test.tpl'); import('core/menu_service'); global $Sql; import('util/date'); $result = $Sql->query_while("SELECT * FROM ".PREFIX."member WHERE user_groups = '7|8|' ", __LINE__, __FILE__); // $requete = $Sql->query_while("SELECT DATE_FORMAT(user_born, "%Y/%m/%d") FROM ".PREFIX."member WHERE user_groups = 9", __LINE__, __FILE__); (erreur affichée ) while( $row = $Sql->fetch_assoc($result) ) { $tpl->assign_block_vars('list_member0', array( 'LOGIN0' => $row['login'], 'AVATAR0' => $row['user_avatar'], 'BORN0' => $row['user_born'], // 'DAY' => strtodate($row['user_born'], $LANG['date_birth_parse'], $date = new Date(DATE_FROM_STRING, TIMEZONE_SYSTEM, $row['user_born'], 'y-m-d'), //La date formatée s'obtient comme ceci $date->format(DATE_FORMAT_SHORT), // 'CORN0' => $row['user_born'], // $born = $row['user_born'], // if($born == '0') // { // 'BORN0' => 'éternel', // } // else // { // 'BORN0' => $row['user_born'], // } )); } $result = $Sql->query_while("SELECT * FROM ".PREFIX."member WHERE user_groups = 9", __LINE__, __FILE__); while( $row = $Sql->fetch_assoc($result) ) { $tpl->assign_block_vars('list_member1', array( 'LOGIN1' => $row['login'], 'AVATAR1' => $row['user_avatar'], 'BORN1' => $row['user_born'] )); } $result = $Sql->query_while("SELECT * FROM ".PREFIX."member WHERE user_groups = 10", __LINE__, __FILE__); while( $row = $Sql->fetch_assoc($result) ) { $tpl->assign_block_vars('list_member2', array( 'LOGIN2' => $row['login'], 'AVATAR2' => $row['user_avatar'], 'BORN2' => $row['user_born'] )); } $result = $Sql->query_while("SELECT * FROM ".PREFIX."member WHERE user_groups = 11 OR user_groups = 12", __LINE__, __FILE__); while( $row = $Sql->fetch_assoc($result) ) { $tpl->assign_block_vars('list_member3', array( 'LOGIN3' => $row['login'], 'AVATAR3' => $row['user_avatar'], 'BORN3' => $row['user_born'] )); } $result = $Sql->query_while("SELECT * FROM ".PREFIX."member WHERE user_groups = 3", __LINE__, __FILE__); while( $row = $Sql->fetch_assoc($result) ) { $tpl->assign_block_vars('list_member4', array( 'LOGIN4' => $row['login'], 'AVATAR4' => $row['user_avatar'], 'BORN4' => $row['user_born'] )); } // Parsage ! // return $tpl->parse(TEMPLATE_STRING_MODE); $tpl->parse(); require_once('../kernel/footer.php'); ?>
Édité par Tezz Le 28/04/2010 à 01h17
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
En fait j'ai dit une connerie, pour le formatage, voilà ce qu'il faut faire :
Code PHP :
Là encore je n'ai pas testé, tiens moi au courant si tu as des problèmes.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
Tezz Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre Tezz
- Inscrit le : 26/04/2010
encore la j'ai des résultats plus prometteurs,
il n'y a plus d'erreur renvoyée pour le code, un grand pas

Par contre il reste une erreur lorsque j'appelle la variable avec le fichier tpl.
Code PHP :
import('util/date');
$result = $Sql->query_while("SELECT * FROM ".PREFIX."member WHERE user_groups = '7|8|' ", __LINE__, __FILE__);
while( $row = $Sql->fetch_assoc($result) )
{
$tpl->assign_block_vars('list_member0', array(
'LOGIN0' => $row['login'],
'AVATAR0' => $row['user_avatar'],
'BORN0' => $row['user_born'],
$date = new Date(DATE_TIMESTAMP, TIMEZONE_SYSTEM, strtotime($row['user_born'])),
//La date formatée s'obtient comme ceci
$date->format(DATE_FORMAT_SHORT),
'DATE' => $date,
));
}
Code HTML :
l'erreur est la suivante:
Inconnue : Object of class Date could not be converted to string dans le fichier /web/teampff/www/playforfun/cache/tpl/test_tpl_test.php à la ligne 25
En tout cas, un grand merci, parce que j'ai un peu de mal a trouver toute la documentation nécéssaire.
Édité par Tezz Le 28/04/2010 à 10h12
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Code PHP :
'DATE' => $date->format(DATE_FORMAT_SHORT)
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
Tezz Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre Tezz
- Inscrit le : 26/04/2010
ça marche nickel la,
seul j'aurais eu du mal a le trouver

Le problème est résolu !
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie