Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 02/03/2006, 13h18   #1
Invité de passage
 
Inscription : mai 2005
Messages : 30
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 30
Points : 4
Points : 4
Par défaut [Conception] Convertion de date de FR=>BDD et de BDD=> FR

Bonjour,

J'ai 2 convertion de date à faire depuis un champ de formulaire.

le 1er champ et l'envoi de cette date, la convertir avant l'envoi du format FR vers le Format (Anglais) pour la stocker dans ma table de ma BDD:
mon script ( qui ne marche pas comme je souhaite), j'écri la date sous la forme 02/03/06 et elle s'écrit sous la forme 2002-03-060
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<input name="date_de_la_nouvelle_Maj" type="text" class="champFormulaire" id="date_de_la_nouvelle_Maj" value="<?php
$datefr = date("d/m/y");
echo $datefr;
function datefr($thedate , $format) {
 if (!preg_match('/(\d\d\d\d)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)/', $thedate, $r))
 {
 return false;
 }
 else
 {
 setlocale (LC_TIME, "fr_FR");
 $date = strftime($format,mktime($r[4], $r[5], $r[6], $r[2], $r[3], $r[1] ));
 $date = ucfirst($date);
 return $date;
 }
 
}
?>" size="12" maxlength="10" />
Le 2eme champ qui fait apparaitre la date dans un champ du formulaire de vérification de saisie, la présente ainsi : 2002-03-060
Code :
1
2
 
 <input name="DateMaj" type="text" class="champFormulaire" id="DateMaj" value=" <?php echo $row_newMAJ['date']; ?>" size="12" />
Je ne sais pas comment faire pour obtenir de bonnes conversions de date.

Merci de votre aide.

Reman
reman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 13h21   #2
Membre éclairé
 
Avatar de hisy
 
Inscription : novembre 2004
Messages : 373
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 373
Points : 300
Points : 300
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
function formateDate($dateInit,$conv){ 
	// Convertit une date au format Anglais 2004-04-14 en format francais 14/04/2004
	// Et vis et versa 
	// USAGE : Appeler la fonction en passant en parametre la date et le type de convertion ( en_fr => English Francais ... )
	switch($conv){
		case "en_fr":
			$tabDate=explode("-",$dateInit);
			$newDate=$tabDate[2]."/".$tabDate[1]."/".$tabDate[0];
			return $newDate;
		break;
		case "fr_en":
			$tabDate=explode("/",$dateInit);
			$newDate=$tabDate[2]."-".$tabDate[1]."-".$tabDate[0];
			return $newDate;
		break;
	}
}
__________________
Take it HiSy
hisy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 13h22   #3
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Si tu as un contrôle sur ta BDD, le plus pratique serait de stocker toutes tes dates en timestamp (format int(10) dans la table).
Ainsi, un simple appel à date() avec ton timestamp en paramètre et tu pourras les afficher comme tu le souhaites.
Pour obtenir un timestamp à partir d'une date, utilise mktime().
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 13h28   #4
Membre habitué
 
Inscription : août 2005
Messages : 142
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 142
Points : 124
Points : 124
Citation:
Envoyé par Kirkis
Pour obtenir un timestamp à partir d'une date, utilise mktime().
ou bien strtotime
zulkifli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 16h25   #5
Invité de passage
 
Inscription : mai 2005
Messages : 30
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 30
Points : 4
Points : 4
J'ai mis mon champ de ma table en "timestamp" et j'ai fait les modif suivant dans mon script :
champ de date à remplir avant l'envoi vers ma BDD
Code :
1
2
3
 
<input name="date_de_la_nouvelle_Maj" type="text" class="champFormulaire" id="date_de_la_nouvelle_Maj" value="<?php
$datefr = date("d/m/y", mktime(0, 0, 0, 3, 0, 2000)); ?>" size="12" maxlength="10" />
Résultat, cela ne fonctionne pas, avant la date du jour apparaîssait dans ce champ "03/03/2006".

Le champ de renvoi de la date du dernier enregistrement de données dans ma table.

Code :
1
2
 
<input name="DateMaj" type="text" class="champFormulaire" id="DateMaj" value=" <?php echo $row_newMAJ['date']; $date = date("d/m/y", mktime(0, 0, 0, 3, 0, 2000)); ?>" size="12" />
Merci de votre aide.
reman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 19h49   #6
Invité de passage
 
Inscription : mai 2005
Messages : 30
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 30
Points : 4
Points : 4
Pourquoi cela ne fonctionne t-il pas avecc le script du dessus ?
reman 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 19h40.


 
 
 
 
Partenaires

Hébergement Web