Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: Fabien le le 10-12-2003 a 11:41:55

Titre: Stockage d'une date
Posté par: Fabien le le 10-12-2003 a 11:41:55

Je suis en train de faire une application qui enregistre divers évenements. Et je ne trouve pas trop comment stocker les dates.

Mon principal problème vient du fait que les "dates" peuvent signifier plusieurs chose :

- 10 décembre 2003
- 10 décembre (tous les dix décembres)
- vendredi 13 (tous les vendredi 13)
- lundi (tous les lundi)
- le 10 (pour le 10 de chaque mois)

et je ne vois pas trop comment stocker ça de manière propre.
Je pensais utilisé une chaine de caracteres du genre.
lundi/10/decembre/2003 en replaçant l'info par des xxx quand on ne possède pas l'info.

Merci de votre aide.

PS: j'utilise SQLite donc les champs de la base de données ne sont pas typés.

Titre: Re:Stockage d'une date
Posté par: POde.uk le le 10-12-2003 a 11:52:39

euh g pas compris ton probleme

tu en fais quoi après de ces dates? tu les traites?
(vasy msieur y m'traite)
tu les affiches justes?

elles ressembles à koi avant ke tu les stockes, c des string?

Titre: Re:Stockage d'une date
Posté par: Fabien le le 10-12-2003 a 12:01:11

Le but c'est par exemple d'afficher :

"10" jours avant "les vacances"

Titre: Re:Stockage d'une date
Posté par: POde.uk le le 10-12-2003 a 12:06:05

t'es pas très clair hein :)

echo "10 jours avant les vacances";

PHP possède des fonctions pour la gestion des dates, je pense que tu les connais donc je comprends pas ou se situe ton problème

http://www.izidoo.com/content/article.php?artID=11
http://www.izidoo.com/content/article.php?artID=12

si tu stockes le temps unix, à partir de ça tu peux tout faire?

Titre: Re:Stockage d'une date
Posté par: Fabien le le 10-12-2003 a 12:30:35

Bah non justement. C'est sur que je peux utiliser un timestamp pour une date précise (le 20 décembre 2003) mais ça ne fonctionne pas pour une date du genre "tous les lundi".

à la base je comptait utiliser la table suivante mais ça me parait bizarre :


Code:

CREATE TABLE evenement (
numEvenement INTEGER PRIMARY KEY,
nomJour STRING ,
jour STRING ,
mois STRING ,
annee STRING ,
nom_evenement STRING
);

Titre: Re:Stockage d'une date
Posté par: POde.uk le le 10-12-2003 a 17:40:09

ah donc si je comprends bien tu voudrais qu'il se passe certains évènements tous les lundis par exemple, ou tous les 10 du mois?


Titre: Re:Stockage d'une date
Posté par: Fabien le le 10-12-2003 a 17:45:40

Oui, exactement et mon problème se trouve dans la façon optimal de stocker les données.

1. sous la forme de 4 champs dans la base de donnée :
nomJour (ex : lundi, mardi, etc...)
jour (1 à 31)
mois (1 à 12)
annee (un nombre à 4 chiffres)

2. une chaine de caractère de la forme :
nomJour/jour/mois/annee
(avec un split() pour extraire les infos à partir de la chaine)

Titre: Re:Stockage d'une date
Posté par: POde.uk le le 10-12-2003 a 18:36:58

pour extraire des données de la chaine, dans ton cas explode sera plus simple vu que tu découpes par "/" plutot que d'utiliser une expression régulière

bin pour ton problème, à ta place je partirais d'un formatage type du genre :

mercredi 10 décembre 2003

ensuite dans ta base tu sauvegardes simplement les jours où tu veux que se passent l'évènement comme ça :

- lundi
- 01 janvier
- mars 2003

il faut penser à stocker ces informations dans le même ordre que la chaîne "type". Après si date du jour (que tu récup avec un strftime tout bêtement) LIKE '%01 janvier%' en SQL ou avec une regular expression comme t'aimes si tu fais le traitement par PHP, il se passe le truc que tu veux.

bon si t'utilises cette tehcnique, il vaut mieux laisser la date en anglais, le local time marche pas sur mon easyphp donc ya peut etre des serveurs sur lesquels ça marche pas non lus


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.