Convertion de date [php] - Programmation
Marsh Posté le 14-02-2002 à 12:30:04
la meilleure solution : le "timestamp" => fonctions time(), mkTime() etc...
mais si tu tiens à ta solution, utilise des regex pour transformer ça...
dans le genre :
$jjmmaaaa = ereg_replace('([0-9]{4})-([0-9]{2})-([0-9]{2})', '\\3-\\2-\\1', $aaaammjj);
[jfdsdjhfuetppo]--Message édité par M@nu--[/jfdsdjhfuetppo]
Marsh Posté le 14-02-2002 à 13:33:11
Une fois de plus, la solution est dans la DOC !
http://www.mysql.com/doc/D/a/Date_ [...] tions.html
exemple :
SELECT DATE_FORMAT(ma_date,'%Y/%m/%d' as fr_date FROM ma_table
Marsh Posté le 14-02-2002 à 13:34:30
Mara's dad a écrit a écrit : Une fois de plus, la solution est dans la DOC ! http://www.mysql.com/doc/D/a/Date_ [...] tions.html exemple : SELECT DATE_FORMAT(ma_date,'%Y/%m/%d' as fr_date FROM ma_table |
Ils sont pénibles à la fin
Marsh Posté le 14-02-2002 à 13:41:48
Mara's dad a écrit a écrit : Une fois de plus, la solution est dans la DOC ! http://www.mysql.com/doc/D/a/Date_ [...] tions.html exemple : SELECT DATE_FORMAT(ma_date,'%Y/%m/%d' as fr_date FROM ma_table |
sauf qu'il est préférable de ne pas faire travailler mysql pour rien alors que php est + rapide pour ce genre de choses
Marsh Posté le 14-02-2002 à 13:43:11
Je ne dirais pas "pénibles" !
Mais c'est sûr qu'on n'a pas l'impression que les recherches sont allées très loin.
Celà dit, on s'est tous un jour cassé les dents sur des problèmes de dates !
En regardant la doc MySql sur la fonction DATE_FORMAT, j'ai remarqué à quel point elle est complète, cette fonction.
Avec DATE_FORMAT('1999-01-01', '%X %V' elle te sort :
1998 52
C'est à dire l'année et le numéro de la semaine de la date en question (La semaine commence un dimanche en MySql)
Peut-être un peu superflu comme fonction.
Si j'avais eu à calculer ce genre de chose, je ne sais pas si j'aurrai pensé à DATE_FORMAT !
Marsh Posté le 14-02-2002 à 13:49:40
skylight a écrit a écrit : sauf qu'il est préférable de ne pas faire travailler mysql pour rien alors que php est + rapide pour ce genre de choses |
Si tu le dis !
J'avoue ne pas avoir testé toutes les fonctions de MySQL convertible en PHP et réciproquement pour savoir quelle technique me fera gagner 1ms par page !
Marsh Posté le 14-02-2002 à 14:52:20
ok merçi pour vos réponse je vais tenter tout ça. Je pense que je vais essayer par MySQL.
Marsh Posté le 14-02-2002 à 15:44:18
fais une fonction qui découpe ta chaine d'entrée avec un split et qui stocke les valeurs dans un tableau et recompose ta chaine dans l'autre sens pr etre compatible avec les fonctions prédéfinies...
comme ça, pas besoin de gener tes utilisateurs.
Marsh Posté le 19-02-2002 à 13:33:26
$jour = substr($dateheure,8,2)." ";
$mois = substr($dateheure,5,2);
if($mois ==1){$mois = "janvier ";}
if($mois ==2){$mois = "février ";}
if($mois ==3){$mois = "mars ";}
if($mois ==4){$mois = "avril ";}
if($mois ==5){$mois = "mai ";}
if($mois ==6){$mois = "juin ";}
if($mois ==7){$mois = "juillet ";}
if($mois ==8){$mois = "août ";}
if($mois ==9){$mois = "septembre ";}
if($mois ==10){$mois = "octobre ";}
if($mois ==11){$mois = "novembre ";}
if($mois ==12){$mois = "décembre ";}
$annee = substr($dateheure,0,4). " à ";
$heure = substr($dateheure,11,8);
$dateheure=$jour.$mois.$annee.$heure;
$d=$edttime;
$edttime = substr($d,8,2)."-";
$edttime = $edttime.substr($d,5,2)."-";
$edttime = $edttime.substr($d,0,4). " à ";
$edttime = $edttime.substr($d,11,8);
Marsh Posté le 19-02-2002 à 13:47:20
Pourquoi faire simple quand on peut faire compliqué !
Version simple (2 lignes de PHP ) : http://www.surleau.com/temp/date.php
La doc : http://www.php.net/manual/en/function.strftime.php
Marsh Posté le 19-02-2002 à 17:00:55
echo (strftime( "%A %d %B %Y à %H:%M:%S",mktime($dateheure)));
ne marche ^pas
Marsh Posté le 19-02-2002 à 18:01:09
kyo54 a écrit a écrit : Salut à tous! J'utilise PHP et Mysql. Mon petit problème c'est que mysql stocke les dates au formant AAAA-MM-JJ et mes utilisateurs risquent de pas trop aimer et de préférer JJ-MM-AAAA. Comment convertir cela en PHP, ou peut-être avec de javascript... |
pour éviter qu'ils se posent la question, tu devrais peut être créer 3 inputs select, un pour le jour, un pour le mois, un pour l'année, placés dans cet ordre.
ensuite tu envoie à la base $date="$année/$mois/$jour"
Quand tu récupère dans l'autre sens pour les selected, tu fais
$annee=substr($date,0,4);
$mois=substr($date,5,2);
$jour=substr($date,8,2);
Enfin, c'est ce que je fais, c'est plus simple pour l'utilisateur qui peut pas se tromper...
Marsh Posté le 19-02-2002 à 21:01:59
skylight a écrit a écrit : echo (strftime( "%A %d %B %Y à %H:%M:%S",mktime($dateheure))); ne marche ^pas |
<?php
setlocale ("LC_TIME", "fr_FR" );
echo( strftime( "%A %d %B %Y à %H:%M:%S", strtotime("1999-12-25 12:10:05" ) ) );
echo( "<HR>" );
show_source( "date.php" );
?>
chez moi : http://www.surleau.org/tmp/date.php
Cà marche !
Marsh Posté le 20-02-2002 à 15:42:59
pudaipiai a écrit a écrit : pour éviter qu'ils se posent la question, tu devrais peut être créer 3 inputs select, un pour le jour, un pour le mois, un pour l'année, placés dans cet ordre. ensuite tu envoie à la base $date="$année/$mois/$jour" Quand tu récupère dans l'autre sens pour les selected, tu fais $annee=substr($date,0,4); $mois=substr($date,5,2); $jour=substr($date,8,2); Enfin, c'est ce que je fais, c'est plus simple pour l'utilisateur qui peut pas se tromper... |
oui t'as raison, c mieux! J'ai fait ça tranquilou!
[jfdsdjhfuetppo]--Message édité par kyo54--[/jfdsdjhfuetppo]
Marsh Posté le 14-02-2002 à 12:00:59
Salut à tous!
J'utilise PHP et Mysql. Mon petit problème c'est que mysql stocke les dates au formant AAAA-MM-JJ et mes utilisateurs risquent de pas trop aimer et de préférer JJ-MM-AAAA.
Comment convertir cela en PHP, ou peut-être avec de javascript...
---------------
.