PHP <-> mysql echange de dates - Programmation
Marsh Posté le 26-11-2001 à 13:59:15
Bon, ta question n'est pas très précise mais je vais essayer de t'expliquer.
Le passage d'une date du php vers une bdd (base de donnée) et le passage dans le sens inverse ne fonctionne pas tout à fait de la même manière.
Pour passer une date de php vers mysql, il faut donner à ta date un format assez précis. Il existe pour celà plusieurs format utilisable mais selon le réglage des bdd, la date peut être mal interprété. En gros, il existe trois format diférents :
dd : jour sur 2 caratères
mm : mois sur 2 caractères
yyyy : année sur 4 caractères
hh : heure sur 2 caractères
nn : minutes sur 2 caractères
ss : secondes sur 2 caractères
Il est déconseillé d'envoyer les anées sur deux caractères pour 2 grandes raisons :
1) la bdd remplira la date en considérant généralement que l'année corespond au siècle courant (possibilité d'erreur entre 1999 et 2099)
2) la bdd prendra la date pour le format de date mis par défaut dans les réglages
Comme tu peux le voir, les format européen et américain peuvent poser problème. Il est donc conseiller d'utiliser le format asiatique au moment d'envoyer les donées à la base de donnée. (toute les bases de donées que je conais gèrent parfaitement ce format là).
Il faut aussi savoir que la partie hh:mm:ss est optionelle, si elle est pas précisé, la bdd prendra généralement minuit comme heure.
Pour le passage dans l'autre sens, php va recevoir la date comme une chaine de caractère. Le format de la date corespondra au format par défaut de la bdd. On récupére la date comme n'importe quelle donée provenant d'une bdd. Parfois, il est utile de changer le format de la date (il existe une fonction php quif ait ça) mais ca sort du cadre de ta question.
J'espère avoir été assez clair.
A+ .
Marsh Posté le 26-11-2001 à 14:13:34
kan c pour inserer la date actuelle vaut mieux l'inserer en sQL
insert into mabase (date) values (now())
Marsh Posté le 26-11-2001 à 14:17:25
speedyop a écrit a écrit : kan c pour inserer la date actuelle vaut mieux l'inserer en sQL insert into mabase (date) values (now()) |
a condition de ne devoir insérer la date que dans une seule table.
Marsh Posté le 26-11-2001 à 17:19:02
ben par exemple pour ce forum, il est peut-être plus intéressant de ne pas utiliser deux tables, l'une contenant les titres des topic et l'autre les sujet, juste pour afficher les titres et la date de la dernière réponse. Donc un dédoublement du champs date est plus efficace, mais il faut alors que la date soit la même, et donc prendre une date fixe et pas celle générée par now()
Marsh Posté le 26-11-2001 à 17:54:05
Tu met now dans une variable et tu utilise la variable au moment de remplir la requête.
Marsh Posté le 26-11-2001 à 17:54:06
Tu met now dans une variable et tu utilise la variable au moment de remplir la requête.
Marsh Posté le 26-11-2001 à 22:50:32
omega2 a écrit a écrit : Tu met now dans une variable et tu utilise la variable au moment de remplir la requête. |
c'est pas une fonction propre a SQL? parce que ke la trouve pas dans le reference manual de php.net.
Marsh Posté le 27-11-2001 à 10:55:06
gizmo a écrit a écrit : c'est pas une fonction propre a SQL? parce que ke la trouve pas dans le reference manual de php.net. |
Bonne question. J'ai un doute du coup.
Si c'est pas now, alors c'est une autre ( a chercher).
Personellement, j'ai pas ce problème pour le moment. Je ne mets à jour qu'une seule ligne à la fois.
Marsh Posté le 27-11-2001 à 11:57:47
en php la function est plus generique (mais plus completete) un truc du genre date("D/M/Y H:min:s" ) (syntaxe fausse)
Marsh Posté le 27-11-2001 à 12:24:39
speedyop a écrit a écrit : en php la function est plus generique (mais plus completete) un truc du genre date("D/M/Y H:min:s" ) (syntaxe fausse) |
oui, c'est ce que j'utilise.
Marsh Posté le 20-11-2001 à 18:05:39
comment ca fonctionne ?