Utilisation des dates au format francais [FAQ PHP] - Programmation
Marsh Posté le 14-03-2002 à 10:39:19
taka pondre un ptit algo sympa qui converti le 2002-0314 en 14/03/02
Marsh Posté le 14-03-2002 à 10:43:07
il est gentil....
je rapelle que ce post est destine a devenir une faq donc pour des neophytes
Marsh Posté le 14-03-2002 à 10:49:00
Si ce sont des dates courantes ( de notre époque quoi) bah j'utilise un timestamp en php + un champ bigint(14) en mysql et ensuite à l'affichage je peux l'afficher comme il me plait.
Je pense que c'est meiux au niveau de l'adaptabilité du code
Marsh Posté le 14-03-2002 à 10:52:06
oui mais si on recupere une date jj/mm/aa depuis un formulaire on ne peut pas les convertire en timestamp....
actuellement j'eclate ma date et je fais des comparaisons sur l'annee puis sur le mois puis sur le jour... c po top!
lord ii a écrit a écrit : Si ce sont des dates courantes ( de notre époque quoi) bah j'utilise un timestamp en php + un champ bigint(14) en mysql et ensuite à l'affichage je peux l'afficher comme il me plait. Je pense que c'est meiux au niveau de l'adaptabilité du code |
Marsh Posté le 14-03-2002 à 11:15:56
Bah pour ca il faut forcer le plus possible l'utilisateur à écrire comme tu veux et ensuite tu peux générer un timestamp en passant les bons paramètres à mktime()
Marsh Posté le 14-03-2002 à 11:21:57
je suis sur qu'il y a des combines + simples ...
personne ?
Marsh Posté le 14-03-2002 à 11:41:27
pour sortir un date formatée d'un champ DATE ou DATETIME MySQL :
SELECT ... DATE_FORMAT(champ_date,'%d-%m-%Y %H:%i' as nom_alias
moi j'utilise que ça (mais j'inclu surtout la date courante, rarement une autre date..)
Marsh Posté le 14-03-2002 à 12:13:59
ok Sh@rdar ca me plait bcp + !
pour inclure la date courante on peut faire un
insert(NOW())
nan ?
Marsh Posté le 14-03-2002 à 13:55:30
kayasax a écrit a écrit : ok Sh@rdar ca me plait bcp + ! pour inclure la date courante on peut faire un insert(NOW()) nan ? |
oui
tu peux aussi ajouter dans le date_format du code HTML, et y a pas mal de façon de paramétrer la date (1 ou 2 chiffres, initiales du jour, moi en toute lettre etc.)
[jfdsdjhfuetppo]--Message édité par Sh@rdar--[/jfdsdjhfuetppo]
Marsh Posté le 16-04-2002 à 22:28:46
Sh@rdar j'ai essaye ta technique mais ca me cause une erreur de requete :
$sql="select * from sujet order by 'date' DESC limit 30 DATE_FORMAT('date','%d-%m-%Y %H:%i' as 'date_corrigee'";
j'ai merdé ?
Marsh Posté le 16-04-2002 à 22:32:52
kayasax a écrit a écrit : Sh@rdar j'ai essaye ta technique mais ca me cause une erreur de requete : $sql="select * from sujet order by 'date' DESC limit 30 DATE_FORMAT('date','%d-%m-%Y %H:%i' as 'date_corrigee'"; j'ai merdé ? |
select date_format(date,'%d-%m-%Y %H:%i' as date_corrigee from sujet order byte date desc limit 30
[jfdsdjhfuetppo]--Message édité par HappyHarry--[/jfdsdjhfuetppo]
Marsh Posté le 16-04-2002 à 22:35:23
fo que je fasse 2 requete donc ? paske moi je veux pas sortir que la date mais les autres champs aussi ...
Marsh Posté le 16-04-2002 à 22:36:37
ben : select champ1,champ2,champ3,date_format()
t'as pas le choix
Marsh Posté le 16-04-2002 à 22:55:36
SELECT *,DATE_FORMAT(date,'%d-%m-%Y %H:%i' as date_corrigee
ça marche pas ?
(pas testé je viens de couper mon serveur..)
Marsh Posté le 16-04-2002 à 23:43:45
Sh@rdar a écrit a écrit : SELECT *,DATE_FORMAT(date,'%d-%m-%Y %H:%i' as date_corrigee ça marche pas ? (pas testé je viens de couper mon serveur..) |
nan ca marche pas ce genre de trucs en SQL
Marsh Posté le 16-04-2002 à 23:51:50
He les gars ca marche po NOW() dans ma requete !
insert into sujet VALUES ('','cgcgj','lol
39;,'1','NOW()','0&
#039;,'0','lol','NOW
()'
et mes dates : 0000-00-00 00:00:00
keskispas ?
Marsh Posté le 17-04-2002 à 03:10:47
kayasax a écrit a écrit : oui mais si on recupere une date jj/mm/aa depuis un formulaire on ne peut pas les convertire en timestamp.... actuellement j'eclate ma date et je fais des comparaisons sur l'annee puis sur le mois puis sur le jour... c po top! |
$dateunix= strtotime($date_string); //$date_string="10/04/2002"
ou
$dateunix= date("U" );
pour l'affichage :
echo date("d/m/Y H:i:s", $dateunix);
si tu veux proposer à tes utilisateurs de changer le format d'affichage, c'est simple (une liste déroulante fait en gros l'affaire)
si tu veux leur proposer de l'adapter à leur fuseau horaire aussi... (ex : +9h -> $dateunix+(9*3600) )
J'utilise du int(10) unsigned dans ma bd pour stocker des unixtime, c'est le plus facile à manipuler (comparaisons, changement de fuseau horaire, ...).
[jfdsdjhfuetppo]--Message édité par ethernal--[/jfdsdjhfuetppo]
Marsh Posté le 17-04-2002 à 08:55:09
Merci !
Mes neurones (ou ce qu'il en reste) devaient deja dormir a cette heure la ;-)...
HappyHarry a écrit a écrit : vire les quotes autour des NOW() ... |
Marsh Posté le 14-03-2002 à 10:37:24
Salut !
j'ai mis [FAQ PHP] dans le sujet car je sais que le sujet a ete traite plein de fois mais faire une recherche sur date et php ca sort trop de posts (et y en a qui doivent connaitre ca par coeur )...Si il y a d'autres sujets recurrents ca serait pas mal de rajouter FAQ dans le titre pour faciliter les recherches ulterieures.
Donc ma question c'est comment gerer en php + mysql (type de champ ?) les dates au format jj/mm/aa ?
si vous pouviez mettre qqes exemples (notament comparaison de 2 dates) ce serait de la balle !
@+
---------------
All we need is a soul revolution