La communauté ALL HTML c'est 58238 membres à ce jour dont 2 inscrits aujourd'hui et 34 depuis une semaine.

  • imprimer
  • aide

Forum de discussions « Publications ALL HTML »

Comparaison de dates

liste des forums liste des discussions Participer à la discussion

Photo de elizabeth Message publié le mardi 27 novembre 2007 à 18 h 52 par elizabeth. les pieds sur terre et la tête dans les étoiles
Bonjour,
Je fais cette publication parce que je me mélange toujours dans les dates et les comparaisons. Alors même si c'est simple, il y a toujours un truc logique qui nous échape, et on y passe des heures.

Le projet est le suivant :

Récupération de la date d'un spectacle.

- possibilité 1 : le spectacle a déjà eu lieu, on ne peut pas réserver.

- possibilité 2 : le spectacle a lieu dans moins d'une semaine, on peut réserver, mais par téléphone car le chèque n'aura pas le temps d'arriver par la poste.

- possibilité 3 : le spectacle a lieu dans plus d'une semaine, on peut réserver en ligne et envoyer le chèque...

d'abord, mes variables :
<? $datespect=20071205; // je met une date test, ici : le 5 décembre 2007. en vrai vous récupérez votre date comme vous voulez (base de donnée, formulaire...), l'essentiel est qu'elle soit sous forme AAAAmmjj. c'est important de mettre l'année d'abord, puis le mois et le jour. testez avec des dates avant, après, pendant la semaine etc... $datejour = date("Ynd"); // je passe la date d'aujourd'hui en AAAAmmjj $dansunesemaine = time() + (7 * 24 * 60 * 60); $datefinresa = date('Ymd', $dansunesemaine); //je calcule la date qu'il sera dans une semaine ?>

ensuite, juste pour le test et pour bien vérifier que les comparaisons sont bonnes, j'affiche les valeurs de mes variables :


aujourd'hui : <?php echo $datejour ?> <br /> le spectacle : <?php echo $datespect ?> <br /> date à partir de laquelle on ne peut plus réserver : <?php echo $datefinresa ?> <br /> ----------------------------------------------------<br />

maintenant le calcul en fonction des dates :

<? if ($datejour>$datespect) // si la date du spectacle est inférieure à aujourd'hui { echo "le spectacle est passé"; } else if ($datefinresa<$datespect) // le spectacle a lieu après la date limite de fin de réservation { echo "vous pouvez réserver ce spectacle en ligne"; // là vous pouvez mettre le formulaire de réservation en ligne, par exemple } else { // sinon, c'est que l'on se trouve après la date de fin de réservation mais que le spectacle n'est pas encore passé echo " le spectacle a lieu dans moins d'une semaine, vous devez réserver par téléphone"; } ?>

Voilà, c'est tout bête mais ça évite de se prendre la tête pour des détails. J'espère que ça en dépannera quelques uns.

Photo de pchlj Message publié le lundi 17 décembre 2007 à 14 h 25 par pchlj. no comment !
Sympa :) pratique pour ceux qui se mélangent les pinceaux :)

(remarque : il manque les saut de lignes dans le code du coup on ne le vois pas :) )

Bon sinon personnellement sur les dates à comparaison j'utilise plutot les timestamp... directement sauvegardé dans la BDD...

Ensuite je dirai qu'il est souvent tout aussi simple de gérer les dates directement en bdd soit par une comparaison < ou > soit avec un BETWEEN du coup on ressort directement les résultats nécessaire et point n'est besoin de tester en php

Pour en revenir au timestamp ils sont quand m^meme plus pratiqe car portables

On les utilises en php en bdd et aussi en JS du coup le même champs de base de donnée peut servir pour tous les langages ... on est pas jésus on va pas multiplier les pains :D

Attention je parle du TIMESTAMP UNIX car le timestamp mysql n'a rien à voir...
Photo de elizabeth Message publié le dimanche 23 décembre 2007 à 10 h 47 par elizabeth. les pieds sur terre et la tête dans les étoiles
d'accord pour les timestamp, sauf que dans mon cas la date du spectacle est simplement composée de l'année et du jour.
donc pour comparer il m'a parru plus simple de récupérer l'année et le jour en cours, plutot que de transformer la date du spectacle donnée en timestamp.
mais en effet il s'agit là d'un cas spécifique et le timestamp est plus "pro".

pour ce qui est de gérer les dates directement en bdd, avec un between, j'avoue que mon niveau de connaissance n'était pas suffisant pour vous proposer cette solution.

je travaille plus au feeling et de façon intuitive, ma technique laisse à désirer.
(cf ma réponse à la discussion "cases à cocher...").

pchlj, honnêtement, penses-tu que ma technique laisse un peu trop à désirer pour que je me permette de rédiger des publications ?
mon but n'est pas de fourvoyer les débutants en les engageants dans des méthodes qui ne sont pas les bonnes.
simplement, quand j'ai rencontré un souci, et que j'ai mis du temps à le résoudre, ou que j'ai trouvé de l'aide ici, j'ai envie d'aider moi aussi ceux qui pourraient se trouver confrontés aux mêmes problèmes que moi.

mais je ne suis peut-être pas assez carrée, trop autodidacte pour apporter une vraie valeur ajoutée au site ?

merci,
P'tite fée
Photo de jerome218 Message publié le mercredi 09 janvier 2008 à 23 h 40 par jerome218.
Bonsoir à tous,
Je trouve ta façon de travailler tout a fait correcte... créer ton propre format pour comparer des dates ne pose pas de problème... sans doute certaines fonctions php permettent de de gérer plus rapidement tes données, mais le coté didactique de ton intervention est tres efficace ...ta publication est sans aucun doute utile et clair.
Le coté carré n'apporte pas forcément autant de compréhension que ton exemple bien comménté.
Merci
Jérôme
Photo de elizabeth Message publié le jeudi 10 janvier 2008 à 17 h 53 par elizabeth. les pieds sur terre et la tête dans les étoiles
bon,
si j'ai pu servir à quelqu'un alors je suis contente ;o)))
Photo de Danito Message publié le jeudi 07 février 2008 à 12 h 09 par Danito.
Très bonne publication, cela me rappel justement qu'il y a quelques mois j'avais un bête trou de mémoire et j'était incapable de trouver la méthode pour faire une comparaison entre 2 dates.

Ceci dit il est clair qu'il vaut mieux utiliser le timestamp, qui permet de ressortir beaucoup plus d'informations que la simple date ddmmyyyy. En plus si on reste dans ton scénario, la personne qui saisiera les dates de spectacles le fera à partir d'une page web sur laquelle figurera un formulaie. Au moment d'enregistrer le spectacle dans la BDD il suffit de convertir en timestamp avec la fonction mktime().

Sinon bravo la publi.
Photo de elizabeth Message publié le jeudi 07 février 2008 à 20 h 48 par elizabeth. les pieds sur terre et la tête dans les étoiles
merci,

quand tu dis "permet de ressortir beaucoup plus d'informations" tu entends quoi par là ?
dans mon exemple il me semble que c'est suffisant, mais pour d'autre choses ça peut m'intéresser d'avoir une idée plus large... ?
Photo de pchlj Message publié le vendredi 08 février 2008 à 11 h 24 par pchlj. no comment !
salut tout le monde, bon je sors tou juste de la grippe d'où mon silence...

Alors zabeth :)

en effet le timestamp permet de travailler avec toutes les fonctions de date du php...

tu devrais faire un tour dans la doc de ce côté là... tu en apprendrais surement beaucoup...

pour exemple... rien que la fonction date() te permet à partir du timestamp de ressortir, le numéro de la semaine, l'année, le jour, le mois, les minutes les heures les secondes, l'heure internet, le jour de la semaine et tout ça su rle nombre de caractères que l'on veut, sans parler du fuseau horaire et encore d'autres choses....

http://fr.php.net/manual/fr/function.date.php

et il ne s'agit là que d'une seule fonction utilisant le timestamp...

tu peux en savoir beaucoup plus en regardant ici
http://fr.php.net/manual/fr/ref.datetime.php

allez ++
Photo de neoprime1988 Message publié le dimanche 24 février 2008 à 18 h 30 par neoprime1988.
Bonjour à tous,

La source est bien, mais c'est vrai qu'un type timestamp serait peut être plus performant. Ensuite pour donner un interval, la fonction DATE_ADD() est parfaite.

@+

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions