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

Petit nouveau ! | 8 Messages

08 juin 2010, 16:12

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.

ViPHP
ViPHP | 5462 Messages

08 juin 2010, 16:20

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

Petit nouveau ! | 8 Messages

08 juin 2010, 16:23

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.

ViPHP
ViPHP | 5462 Messages

08 juin 2010, 16:26

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

Petit nouveau ! | 8 Messages

08 juin 2010, 17:10

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?

ViPHP
ViPHP | 5462 Messages

08 juin 2010, 17:13

ducoup tas pas la durée ou la date de fin dans ta base ?

Petit nouveau ! | 8 Messages

08 juin 2010, 17:15

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.

ViPHP
ViPHP | 5462 Messages

08 juin 2010, 17:16

on va essayer de feinter

de quel type sont les champs date et heure ?

Petit nouveau ! | 8 Messages

08 juin 2010, 17:58

date => date
heure => time

ViPHP
ViPHP | 5462 Messages

08 juin 2010, 18:03

humm

faudrai pouvoir convertir

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

Petit nouveau ! | 8 Messages

08 juin 2010, 18:24

ok, je vais approfondir avec celui qui m'a fait la base.
Merci pour le tuyau.
On va toujours essayer ça.
Et je repasserai... ;)

ViPHP
ViPHP | 5462 Messages

08 juin 2010, 18:25

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:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 juin 2010, 13:05

Modération :
Le multipostage est interdit sur le forum.

Merci de prendre le temps de lire les règlements.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 8 Messages

15 juin 2010, 16:23

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

ViPHP
ViPHP | 5462 Messages

15 juin 2010, 16:27

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