Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 13/08/2011, 14h55   #1
Futur Membre du Club
 
Inscription : mars 2011
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 54
Points : 17
Points : 17
Par défaut comment stocker le jour, le mois et l'année indépendemment ?

Hello tout le monde,

alors voilà, j'explique :

j'ai besoin de stocker deux dates ( Du ..xx/xx/xxxx.. Au ..xx/xx/xxxx.. ) ds ma table MySQL.
De manière à ce que je puisse par la suite ré-utiliser indépendament l'un de l'autre chaque élément en tant que variable...

Je sais que je ne m'exprime pas très bien xD

Voici une petite illustration :

Je ne sais pas si je suis sur la meilleure des solutions...

voici comment j'affiche les deux dates (PHP):

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<?php
$theDateFrom = isset($_REQUEST["date3"]) ? $_REQUEST["date3"] : "";
$theDateTo = isset($_REQUEST["date4"]) ? $_REQUEST["date4"] : "";
?>
 
 
<table>
<tr>
<td>Du</td><td>:</td><td><?php echo $theDateFrom ?></td>
</tr>
<tr>
<td>Au</td><td>:</td><td><?php echo $theDateTo ?></td>
</tr>              
</table>
en plus elle ne sont pas dans le bon format ! elles sont en YYYY/MM/DD alors que je les voudrais dans l'autre sens, XX/MM/YYYY -> XX = $jour, MM=$mois, YYYY=$année

Comment rentrer ces deux dates dans ma table MySQL pour pouvoir réutiliser uniquement le jour par exemple, et/ou uniquement le mois,... ?

Merci d'avance à tous.
Delvauxo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2011, 18h35   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
Le plus important, est de définir correctement le TYPE de la donnée dans la table SQL : Types temporels
Pour le type "DATE" : "Le standard ISO adopté pour le SQL repose sur le format AAAA-MM-JJ"

A priori, le mieux est d'enregistrer les dates au format "DATE" (qui permet des comparaisons de dates en sql),
et au moment de l'affichage, utiliser les paramètres de la fonction date()
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/08/2011, 23h46   #3
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
// (test)
$ladate = '2011/08/13'; // de la forme AAAA/MM/JJ
 
// enregistrement en BdD
$ladate_bd = str_replace('/', '-', $ladate); // de la forme AAAA-MM-JJ
 
// recuperation depuis la BdD
$ladate_bd = '2011-08-13'; // de la forme AAAA-MM-JJ
// annee, moi, jour
$annee = date('Y',strtotime($ladate_bd));
$mois = date('m',strtotime($ladate_bd));
$jour = date('d',strtotime($ladate_bd));
// date en francais de la forme JJ/MM/AAAA
$ladate_fr = date('d/m/Y',strtotime($ladate_bd));
 
// affichage (test)
echo 'ladate : '.$ladate.'<br />';
echo 'ladate_bd : '.$ladate_bd.'<br />';
echo 'annee : '.$annee.'<br />';
echo 'mois : '.$mois.'<br />';
echo 'jour : '.$jour.'<br />';
echo 'ladate_fr : '.$ladate_fr.'<br />';
?>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/08/2011, 16h46   #4
Futur Membre du Club
 
Inscription : mars 2011
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 54
Points : 17
Points : 17
C'est tout à fait ce que je voulais obtenir comme résultat !

Il ne me reste plus qu'à transformer le mois "01" en "janvier" ou "jan".

et

Un peu plus complexe, comment faire pour obtenir le jour de la semaine (lundi, mardi, mercredi,...) relatif au jour du mois ?

Le but est d'obtenir un résultat comme sur l'image que j'ai posté.

A savoir :

---------------------

J'ai :

- Le jour "01" c'est parfait
- Le mois "01" que je vais transformer en "Jan" ou "Janvier".
- L'année "2011" qui dans ce cas-ci m'est inutile.

Il me manque :

- Le jour de la semaine.
A savoir "Lundi", "Mardi", "Mercredi",...


Je continue à développer de mon coté et je vous tiens au courrant.

Un grand merci de votre aide.
Delvauxo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 16h56   #5
Membre confirmé
 
Homme Benjamin
Consultant informatique
Inscription : août 2007
Messages : 160
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 160
Points : 248
Points : 248
RTFM:
http://php.net/manual/fr/function.date.php
ou http://www.php.net/manual/fr/function.setlocale.php + http://www.php.net/manual/fr/function.strftime.php
bhamp0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 16h59   #6
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Bonjour,

pour le mois, tu fais un tableau php contenant tous les mois (attention, ne mets rien en premier car les tableaux commencent par ), puis l'appelle avec la dimension du mois que tu as stocké :

Code :
1
2
 
$mois_en_cours = $tab_mois[$mois];
pour le jour, même système.
le code pour obtenir le jour est :

Code :
1
2
 
$mon_jour = date("w", strtotime($ladate_bd));
Attention au retour : 0 c'est dimanche et 6 c'est samedi

Tiens-nous au courant
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 08h36   #7
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Bonjour,

Code :
$mon_jour = date("N", strtotime($ladate_bd));
Le retour : 1 (pour Lundi) à 7 (pour Dimanche). Ceci est conforme à la norme ISO-8601 qui définit, entre autres choses, que la semaine commence le lundi.
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 14h18   #8
Futur Membre du Club
 
Inscription : mars 2011
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 54
Points : 17
Points : 17
Merci à tous,
Je suis parvenu à mes fins grâce à tout le monde :-)
Delvauxo est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h47.


 
 
 
 
Partenaires

Hébergement Web