Page 1 sur 2

Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 16:12
par OliOne
Bonjour,

C'est la première fois que j'utilise une base de donnée et le php.
J'ai créé le site http://www.fetedelamusiqueliege.be et la page en php est http://www.fetedelamusiqueliege.be/programme.php
(avant je faisais tout ça en html)

Mon problème:
un organisateur propose des concerts le 18 juin, de 20h00 à 5h00 du matin (on a des concerts du 17 au 21 juin, grosso modo)
Evidement, les concerts après minuits sont encodé au 19 juin.
Malheureusement, cela déplait à l'organisateur qui a moins de la moitié de sa programmation qui apparait pour la soirée du 18 juin (je le comprends fort bien).

Alors, comment faire pour que les concerts programmés avant 08h00 du jour x (19 juin, par exemple) soient affichés comme étant du jour x-1 (18 juin, pour suivre l'exemple)?
Existe-t-il une "formule" php ou dois-je modifier quelque chose dans la base?

Edit: je ne sais pas si c'est possible: peut-on faire croire que la date ne commence pas à 00h00 mais à 08h00?

Je suis également prêt à encoder du "code php de tricheur" pour les quelques concerts concernés, même si cela n'est pas "propre".
Mais il faut absolument que cela s'affiche correctement, que l'on choisisse l'affichage par lieu, par date ou par artiste, c'est tout ce qui importe.

Merci beaucoup pour votre aide!

OliOne
Note: ne sachant pas si cela concerne " SQL & Bases de données" ou "PHP pour débutant, je me permets de poster dans les deux rubriques.

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 16:20
par stealth35
hello,
au lieu de faire d'une heure a une autre, plutôt partir d'une heure jusqu'à un temps donnée

18 juin, début 20h durée du concert 9h

ensuite que ca soit en SQL ou en PHP

18-06 20:00 +9 hours = 19 juin 05:00

suffis juste tu récupérer l'heure

18 juin 20h 05h

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 16:23
par OliOne
Merci pour la rapidité de ta réponse, mais ça ne va pas pour ce cas:
chaque artiste doit avoir son horaire propre et donc, je dois détailler les heures sans faire de regroupement de durée.

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 16:26
par stealth35
Merci pour la rapidité de ta réponse, mais ça ne va pas pour ce cas:
chaque artiste doit avoir son horaire propre et donc, je dois détailler les heures sans faire de regroupement de durée.
comment se présente ta base ? parce que pour un artiste c'est pareil date debut et durée, la durée du concert etant la date de but du premier artiste + la date de début du dernier artiste + la durée du set

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 17:10
par OliOne
ok, je crois que je viens de comprendre.
c'est juste qu'en pratique, je ne sais pas du tout comment (en)coder cela.

En fait, c'est un autre qui m'a préparé ma base.
Je me contente de remplir les champs:

+ date
+ heure
+ scène
+ artiste

Et donc, comment encoder l'heure 20h00 + 5h (pour que ça affiche 01h00 et que cela se classe après 23h59) alors que jusque là, je dois encoder sous le format 20:00:00?

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 17:13
par stealth35
ducoup tas pas la durée ou la date de fin dans ta base ?

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 17:15
par OliOne
ducoup tas pas la durée ou la date de fin dans ta base ?
malheureusement non :(

Et en faire l'ajout, je ne voudrais pas que cela implique une modif sur toutes les entrées (plus de 150). Je n'ai pas assez de temps libre pour refaire tout.

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 17:16
par stealth35
on va essayer de feinter

de quel type sont les champs date et heure ?

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 17:58
par OliOne
date => date
heure => time

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 18:03
par stealth35
humm

faudrai pouvoir convertir

date => timestamp (date + heure)
heure => int

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 18:24
par OliOne
ok, je vais approfondir avec celui qui m'a fait la base.
Merci pour le tuyau.
On va toujours essayer ça.
Et je repasserai... ;)

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 08 juin 2010, 18:25
par stealth35
ok, je vais approfondir avec celui qui m'a fait la base.
Merci pour le tuyau.
On va toujours essayer ça.
Et je repasserai... ;)
le plus simple serai de juste rajouter un champ durée :wink:

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 10 juin 2010, 13:05
par zeus
Modération :
Le multipostage est interdit sur le forum.

Merci de prendre le temps de lire les règlements.

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 15 juin 2010, 16:23
par OliOne
Salut stealth35,

Comme promis, je repasse.
Pour ne pas changer tout dans la base, on a intégré ceci:
if($affiche['heures'] <9) {
    $affiche['date']=$affiche['date']-1;
}
Et ça fonctionne très bien.
Tous les concerts annoncés pour la nuit (avant 9h00 du matin) sont au programme de la veille.
C'est un peu plus facile pour moi que ta solution que nous n'avons donc pas testée, de peur de perdre trop de données en cours de route, surtout parce que le site est déjà en ligne et que l'event, c'est ce WE ^^

Merci pour ta participation!

++

OliOne

Re: Comment afficher une 18juin minuit 30 après 18juin 20h00?

Posté : 15 juin 2010, 16:27
par stealth35
Salut stealth35,

Comme promis, je repasse.
Pour ne pas changer tout dans la base, on a intégré ceci:
if($affiche['heures'] <9) {
    $affiche['date']=$affiche['date']-1;
}
Et ça fonctionne très bien.
Tous les concerts annoncés pour la nuit (avant 9h00 du matin) sont au programme de la veille.
C'est un peu plus facile pour moi que ta solution que nous n'avons donc pas testée, de peur de perdre trop de données en cours de route, surtout parce que le site est déjà en ligne et que l'event, c'est ce WE ^^

Merci pour ta participation!

++

OliOne
parfait :D
par contre le coup du - 1 ca n'aurai pas marché dans le cas ou la date était = 1, mais comme c'est pas le cas pas de soucis