IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Dates] Calcul tout bête sur une date...


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut [Dates] Calcul tout bête sur une date...
    Bonjour,

    Alors voilà mon petit problème :
    Dans le cadre d'un projet avec annonces, je dois entrer comme enregistrement dans ma base une date de validité de l'annonce.
    2 cas de figure : annonce valable 15 ou 30 jours, à compter de la date de dépôt de l'annonce.

    Donc voilà ma question :
    Exist-t'il un moyen de calculer la date de validité de cette annonce, selon le nombre de jours sélectionné ?
    Un peu genre : $date + 15, ou $date + 30 ?
    Ou alors faut-il que je fasse des fonctions à gogo, permettant de calculer cette date de validité en fonction des années bissextiles, etc...

    Merci de votre réponse...

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Mmm je pencherai pour les fonctions à gogo mais pas sur je n'utilise pas trop les dates.

    Imaginons on est le 5 mars, la ça va tu récupères le jour de la date et tu lui ajoute 15 (ou 30):
    Mais si c'est un 28 euh faut savoir si c'est un mois a 30, 31 ou 28 jours et passer au mois d'après...
    Je me souviens qu'une question du genre à été posée mais je n'arrive pas àa la retrouver...

    Passe voir http://fr2.php.net/manual/fr/function.date.php ça peut t'aider quand même.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Merci pour ta réponse...

    En fait, les années bissextiles, et tout le tralala, j'ai réussi à faire quelque chose...
    Mais ce qui m'embete, c'st par exemple qulqu'un qui soumet une annonce pour 30 jours le 31 janvier, et ben il faut que cela tombe le 1 ou le 2 mars...
    et pas en février...

    En fait, c'était surtout pour savoir si quelque chose existit pour simplifier le tout...

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut poah,

    Regarde les fonctions de date de php, il y a tout ce qu'il faut.

    http://php.benscom.com/manual/fr/function.mktime.php
    http://php.benscom.com/manual/fr/function.getdate.php

    Dans ton cas, il te faut connaitre la notion de timestamp, c'est une
    valeur absolue qui compte le temps écoulé depuis un date de référence.

    En php tu peux facilement travailler avec le timestamp UNIX qui est
    compté en seconde depuis le 1.1.1970 à minuit GMT

    Il existe des fonctions de date pour créer un timestamp a partir d'une
    date connue, et vice-versa.

    Ajouter 15 jours ou 30 jours à un timestamp est aussi simple que cela:

    $ton_stamp += 15 * 86400; // 86400 = 60*60*24, le nb de secondes d'une journée.

    Regarde les exemples dans la documentation de ces fonctions.

    A+
    Marc

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    En PHP tu as strtotime( ) très pratique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $limit = strtotime('+30 days') ; // aujourd'hui + 30 jours
    echo date('d/m/Y', $limit) ;
    Ou alors directement dans MySQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    announce_limit = NOW( ) + INTERVAL 30 DAY

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Je vous remercie beaucoup pour toutes ces infos, je vais regarder tout ça...

    Je vous tiens au courant

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/11/2013, 14h23
  2. [PHP 5.2] Calcul de différence sur une date
    Par ju0123456789 dans le forum Langage
    Réponses: 4
    Dernier message: 28/09/2012, 16h13
  3. Réponses: 6
    Dernier message: 24/07/2010, 13h47
  4. Réponses: 4
    Dernier message: 07/08/2008, 17h12
  5. [MySQL] comment rechercher une date au format datetime avec une date au format date
    Par Menoly dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/06/2007, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo