|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() |
Bonjour,
Je voudrais savoir comment calculer la limite qui est insérer dans la base de données quand je rentre une date et une heure ? Ex : le 23/07/2006 à 18h30 = 113661400 Avez vous une astuce pour calculer à la main ? Merci d'avance |
|
|
00
|
|
|
#2 | |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Citation:
Et en quoi ça concerne MySQL ?
__________________
Pensez au bouton
|
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() |
En fait, j'ai une heure et une date limite avant un match à pronostiquer !
Exemple : Vous pouvez pronostiquer Italie / France avant le 23/07/2006 18h30 Dans ma base de donnée, j'ai un champ "limite" et ce champ est remplie par le nombre de seconde depuis le 1er janvier 1970 00h00 et pour l'exemple, ce nombre est 1153661400 Ma question est, comment calculer ce nombre rapidement à la mimine Merci d'avance pour votre réponse |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2005 Messages : 44 ![]() |
et bien mets ton champ limite en date, comme ca c'est le meme format et ca t'evite de convertir un timestamp en date.
Et tu fais simplement $date_pronostique < $limite_pronistique |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() |
Ce sera une solution si je ne trouve pas un procédé assez rapide pour ce que je souhaite
|
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2005 Messages : 44 ![]() |
COmment faire plus rapide que
if($date_actuelle < $limite_pronostic) INSERT pronostic |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() |
Personne n'a une idée pour faire ce calcul ? à part de modifier le script ?
|
|
|
00
|
|
|
#8 | ||
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Si tu nous disais pourquoi stocker explicitement le nombre de secondes depuis 1970 alors que le type TIMESTAMP le fait déjà sur 4 octets, le tout en permettant de saisir la date sous forme de chaîne ?
Difficile de te répondre sans savoir à quoi ça va servir. Qu'est-ce que tu entends par méthode pour "calculer à la main" ? Tu veux un algo ?? Les fonctions de MySQL ne te suffisent pas ? Code :
P.S. Tu remarqueras que ton exemple était faux avec le nombre de secondes
|
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() |
Désolé, j'avais oublié un chiffre
Ca sert pour un concours de pronostics ! J'explique : J'ai un championnat PRO A de volley ball à pronostiquer. Quand je rentre un match, je dois mettre l'heure et la date limite du pronostic donc, quans je rentre un match à pronostiquer avant le 23 juillet 2006 à 18h30, dans ma base de donnée, dans le champ limite, j'ai le nombre de seconde... ici 1153672200 Une fois, j'ai voulu modifier l'heure d'un match et le nombre de seconde ne correspondait pas à la nouvelle heure. C'est donc pour cela que je voulais trouver comment calculer ce nombre pour modifier directement l'info dans la base de donnée... Est-ce un peu plus clair ? |
|
|
00
|
|
|
#10 |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Oui tu as été très clair, mais tu ne réponds pas à mes questions
Pourquoi t'amuser à calculer le nombre de secondes de chaque date, au lieu d'utiliser les types DATETIME ou TIMESTAMP disponibles dans MySQL ? On t'a imposé la structure de la base ? Et même si tu veux obtenir le nombre de secondes, la fonction "unix_timestamp()" (dont je t'ai donné un exemple dans le post précédent) ne te convient pas ? |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() |
En fait, je n'arriverai pas à faire la modif (car je ne suis pas à l'origine du script et son inventeur l'a abondonné et je reprend l'affaire)
J'ai regardé sur la base de donnée, le champ est du type bigint... Je vous joint la page... Il faudrait faire au plus simple en fait ! |
|
|
00
|
|
|
#12 | ||
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Si tu ne peux pas modifier le type de "limite", ce n'est pas forcément très difficile mais moins propre. En tout cas, BIGINT pour ça, l'ancien webmaster a vu grand
L'ancien webmaster calculait un timestamp (nombre de secondes depuis 1970) en PHP avec mktime(). Comme ici : Code :
Ou tu peux faire directement dans MySQL Par exemple dans un UPDATE (vu que c'est ça qui te pose problème à la base) : Code :
UPDATE ta_table SET limite = UNIX_TIMESTAMP('2006-09-03 20:30:00'); |
||
|
|
00
|
|
|
#13 | |
|
Invité de passage
![]() |
Citation:
|
|
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() |
Un petit UP
|
|
|
00
|
|
|
#15 | |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Citation:
__________________
Pensez au bouton
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com