Alleger mon code (inside) siouplait........... - PHP - Programmation
Marsh Posté le 08-12-2002 à 19:37:44
tu peu m'expliquer en bref la fonction explode la que t'es la?
Marsh Posté le 08-12-2002 à 19:40:39
la fontion explode me permet de récupérer, sur mes champs jour et heure, jes différentes valeurs de l'année, du mois et du jour, pour la date et des heures, des minutes et des secondes pour l'horraire...
ensuite, je place ce qui convient dans mon mktime là où il faut pour récupérer ce qui m'interesse... le numéro du jour et du mois correspondant à la date 0000-00-00
Marsh Posté le 09-12-2002 à 08:20:27
déjà, tu peux éviter le traitement sur l'heure en le faisant directement dans ta requête SQL
pour la date en FR c'est plus compliqué, ça dépend aussi de la conf du serveur (set local etc..)
DATE_FORMAT(champ_heure,'à %hh%i:%s' AS champheure
Marsh Posté le 09-12-2002 à 11:50:47
Sh@rdar a écrit : déjà, tu peux éviter le traitement sur l'heure en le faisant directement dans ta requête SQL |
pour l'heure : ok, donc dans ma requête sql, je fait bien :
SELECT bozo, texte, jour, (DATE_FORMAT('heure', '%Hh%i:%s' AS heure) from ma_table where bozo like '1';
=> pkoi je met un 'AS heure'... je veux dire que je viens d'aller voir sur nexen.net et je ne vois pas ce 'AS heure'...
=> j'attend une confirmation quand même, merci
pour la date en français : si ça peut t'aider, je suis actuellement avec free, donc si tu pouvais m'expliquer, ça m'arrangerias pas mal...
Marsh Posté le 09-12-2002 à 14:40:30
le AS sert à faire un alias, moi je m'en sert surtout pour tout les champs avec traitement (date, count() etc..) pour être sur du nom du champ en sortie (pas d'erreur possible)
si tu veux que ton code soit plus clair, sépare les traitements jour et mois / heure
le mois et l'heure sont plus "simple" à récupérer, tu pourras très bien les concaténer ensuite à ta date en français.
donne un peu la nouvelle version de ton code, il doit déjà y en avoir moins
Marsh Posté le 09-12-2002 à 14:45:43
setlocale(LC_TIME, "fr_FR" );
echo( strftime("%A %d %B %Y à %H:%M:%S" ) );
Marsh Posté le 09-12-2002 à 14:48:50
voilà le nouveau code :
requête :
$query="select type, jour, DATE_FORMAT('heure', '%Hh%i:%s') AS heure, news_".$lang." from v5_news $trinews order by jour desc, heure desc limit $start,$limit"; |
un explode à disparut :
$d=explode ("-", $tab[1]); |
et la commande d'affichage s'est raccourcie :
".$jour[date ("w", mktime(0,0,0,$d[1],$d[2],$d[0]))]." ".$d[2]." ".$mois[date ("n", mktime(0,0,0,$d[1],$d[2],$d[0]))]." ".$d[0]." à ".$tab[2]." |
malheureusement, l'affichage aussi :
Lundi 30 Septembre 2002 à |
Marsh Posté le 09-12-2002 à 14:50:10
Mara's dad a écrit : setlocale(LC_TIME, "fr_FR" ); |
c'est bien joli tout ça, mais c'est pas la date du jour que je veux mais celle qui correspind à la date qui se trouve dans ma base...
et à vrai sire, 2 lignes de codes lachés dans la nature comme ça, c'est pas très parlant...
Marsh Posté le 09-12-2002 à 14:53:17
t'abuses là, t'as plus qu'à regarder dans la doc l'utilisation de ces fonctions...
Code :
|
Code :
|
Marsh Posté le 09-12-2002 à 14:59:09
Sh@rdar a écrit : t'abuses là, t'as plus qu'à regarder dans la doc l'utilisation de ces fonctions... |
Marsh Posté le 09-12-2002 à 15:02:26
Sh@rdar a écrit : t'abuses là, t'as plus qu'à regarder dans la doc l'utilisation de ces fonctions...
|
tu as la source de ça ??...
Marsh Posté le 09-12-2002 à 15:10:02
cliques dans ma signature
Marsh Posté le 09-12-2002 à 15:16:27
ok ok, alors j'ai essayé quelques trucs :
$tab[2]="22:15:12";
strftime($tab[2], '%Hh%M:%S' => 22:15:12
strftime('%Hh%M:%S', $tab[2]) => 1h0:22
en fait, je n'arrive pas à comprendre comment me servir de strftime avec une date qui n'est pas la date en cour...
Marsh Posté le 09-12-2002 à 15:26:47
xkamui a écrit : ok ok, alors j'ai essayé quelques trucs : |
il prend un toimestamp et pas un string.
Faut que tu transforme ton string en timestamp (te reste plus qu'à regarder la doc dans la catégorie fonction de date/heure)
Marsh Posté le 09-12-2002 à 15:43:23
me trompe peut-être mais il y a moyen d'obtenir un timestamp directement de la query non ??
ça dépend comment tu as déclaré le champ jour et heure, si ce sont des timestamp, tu peux les injecter tels quels dans la fonction strftime(date,'format';
sinon, SELECT UNIX_TIMESTAMP('2002-12-08 20:11:23' as date; (ou un truc du genre)
Marsh Posté le 09-12-2002 à 15:46:23
ethernal a écrit : me trompe peut-être mais il y a moyen d'obtenir un timestamp directement de la query non ?? |
faut pas faire "from table" pour que la requête soit valide?
Il me semble que j'avais du faire ça une fois.
Marsh Posté le 09-12-2002 à 15:49:41
Bon allez on va être gentil !
$result = mysql_query( "SELECT unix_timestamp( concat( jour, ' ', heure ) ) as dt from ma_table" );
$data = mysql_fetch_object( $result );
echo( strftime("%A %d %B %Y à %H:%M:%S", $data->dt ) );
Marsh Posté le 09-12-2002 à 15:54:03
Mara's dad a écrit : Bon allez on va être gentil ! |
ça c'est beaucoup plus qu'être gentil
Marsh Posté le 08-12-2002 à 19:05:45
voilà, j'ai une date stocké dans ma base mysql comme ceci :
je veux afficher tout ça, je fait donc, mise à par ma requête de récupération de données :
à ça m'écrit bien, par exemple, "Lundi 03 Novembre 2002 à 13h15:25"... mais je trouve ça peut-être un peu trop long...
vous voyez un moyen d'alléger tout ça ??
Message édité par xkamui le 09-12-2002 à 00:05:25