Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/09/2006, 23h57   #1
Invité de passage
 
Inscription : avril 2006
Messages : 5
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2006
Messages : 5
Points : 0
Points : 0
Par défaut Problème d'inversion entre le mois et le jour

Bonjour tout le monde!!!

J'ai donc réalisé une application web sous php avec comme serveur le "sql server 7". Tout fonctionnait correctement.
Depuis que j'ai réalisé la migration de sql server 7 à 2000, j'ai rencontré beaucoup de problème au niveau des dates!!!
J'en ai résolu quelqu'un mais maintanant j'ai un problème qui persite.

J'ai donc un formulaire de prêt, de livres par exemple, l'utilisateur doit remplir les champs suivants:
- Nom de la personne qui emprunte le livre
- date de sortie du livre
- date de retour du livre
Jusque là, pas de problème... Mais lorsque l'utilisateur souhaite valider ce prêt, on a une page de liste de prêt qui apparaît. Le problème que je rencontre c'est que le mois et le jour de la date sont inversées.

Si l'utilisateur rentre comme date de sortie: 10/09:2006 en cliquant sur valider (une page de liste de prêt apparaît) on aura comme date de sortie:09/10/2006.
Cette inversion s'est produite lors de la migration du server, pourtant j'ai vérifié que les dates étaient bien du même format (d/m/y).

Je comprends pas pourquoi ça me l'inverse!!!
Si vous avez une idée à ce sujet, ça m'aiderais beaucoup.
casper24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2006, 10h40   #2
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
tu n'utiliserais pas mktime() quelque part ? les parametres sont "inversés" dans cette fonction
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2006, 14h04   #3
Invité de passage
 
Inscription : avril 2006
Messages : 5
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2006
Messages : 5
Points : 0
Points : 0
Bonjour,

Non je n'utilise pas mktime.
Je fais appele à une fonction afficheDate

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
function afficheDate($chp,$direction)
{
 
	if($chp=='' or empty($chp) or $chp=='Null')
	{
		if($direction=='p')return("&nbsp;");
		if($direction=='f')return("");
	}
	else
	{		
		setlocale(LC_TIME, "fr");
		$timestamp = strtotime($chp);
		$Date = date("d.m.Y", $timestamp); //french
		//$Date = date("Y.m.d", $timestamp); //english
		return $Date;
 
	}
}

Et dans mon champ date de sortie le code est de cette forme:
Code :
1
2
 
<? echo afficheDate($dateRetour, 'p') ?>
Avec l'ancien serveur que j'utilisais (sql server 7) je n'avais pas de problème.
Est ce que je dois reconfigurer le nouveau server (sql server 2000) ?
Je l'ai déjà fais mais rien n'a changé.
Merci pour vos réponses.
casper24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2006, 14h37   #4
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
echo est ton ami.
regarde ou sont les données corrompues.
regarde dans ta base de données, regarde ce que tu recoit avant mise en forme, etc... bref, ajoute des echo partout pour trouver d'ou vient le probleme.
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2006, 17h52   #5
Invité de passage
 
Inscription : avril 2006
Messages : 5
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2006
Messages : 5
Points : 0
Points : 0
Bonjour,

Je crois savoir ou mon problème, c'est dans la requête update

Code :
1
2
3
 
 $req = "UPDATE PRET SET refPret='$refPret',affectPret='$affectPret',";
$req .= " dateSortie='$dateSortie',dateRetour='$dateRetour' WHERE refPret='$oldID'";
Le sql server 7 modifier la date sans aucun problème, mais apparemment quand je fais un update sur la date il m'inverse le jour et le mois.
casper24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2006, 19h33   #6
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
j'suis pas un pro SGBD, mais il est bien possible que ca depende du type de la colonne date associée a ta valeur et des options de langues définies dans la base, sans doute anglaise ou américaine par defaut, ou les dates s'écrivent souvent MM/DD/AAAA. Peut etre y a t'il un format "explicite" qui indique quel est le format a prendre. ou alors une modification de la base de donnée pour utiliser le bon type de date
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h34.


 
 
 
 
Partenaires

Hébergement Web