1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2017
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2017
    Messages : 25
    Points : 8
    Points
    8

    Par défaut Nombre de jour avant la fin de l'année

    Salut à tous, je cherche actuellement à récupérer un nombre jour entre une date reçu dans un formulaire et la fin de l'année.
    Par exemple : on donne la date 2017-12-11 il faut que je calcule combien de jours il y a avant le 2017-12-31.
    Le problème est que la date dépend de ce que rentre l'utilisateur...
    Auriez vous des solutions permettant de réaliser ça ?
    Le réel problème étant d'obtenir la date 2017-12-31.

  2. #2
    Expert confirmé Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    juin 2010
    Messages
    2 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : juin 2010
    Messages : 2 172
    Points : 4 223
    Points
    4 223

    Par défaut

    J’ai bricolé un petit truc… Je suis pas super à l’aise avec l’API de dates de PHP.

    Dans l’idée je fais comme ça :
    1. je récupère la date actuelle
    2. je rajoute 1 an
    3. je rabats au 1er janvier
    4. je retire 1 jour


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $today = new DateTime();
    $currentYear = intval($today->format('Y'), 10);
     
    $nextJanuary1st = new DateTime();
    $nextJanuary1st->setDate($currentYear + 1, 1, 1);
    var_dump($nextJanuary1st);
     
    $nextJanuary1st->modify('-1 day');
    var_dump($nextJanuary1st);
    La FAQ JavaScript – Les cours JavaScript
    Access42, ressources francophones sur l’accessibilité
    La touche F12 : l’outil indispensable à tout développeur JavaScript !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2017
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2017
    Messages : 25
    Points : 8
    Points
    8

    Par défaut

    Merci pour ton aide,
    j'ai réussi moi aussi à produire un petit truc tout à l'heure, en parti récupéré d'un forum d'aide sur un sujet ancien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php 
    $date = new DateTime($_POST['dateMiseService']); $anneeMiseService = $date->format('Y'); 
    $finAnneeMiseService = $anneeMiseService."-12-31";
    // On transforme les 2 dates en timestamp
    $date3 = strtotime($_POST['dateMiseService']);
    $date4 = strtotime($finAnneeMiseService);
     
    // On récupère la différence de timestamp entre les 2 précédents
    $nbJoursTimestamp = $date4 - $date3;
     
    // ** Pour convertir le timestamp (exprimé en secondes) en jours **
    // On sait que 1 heure = 60 secondes * 60 minutes et que 1 jour = 24 heures donc :
    $nbJours = $nbJoursTimestamp/86400; // 86 400 = 60*60*24
     
    echo $nbJours;
    ?>
    Ça semble convenir pour le travail que ça à produire dans mon code mais il est-ce que syntaxiquement c'est clean ?

  4. #4
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    4 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 4 353
    Points : 10 743
    Points
    10 743

    Par défaut

    Salut,

    tiens inspire toi de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $user = '2017-12-11';
    $date = new DateTimeImmutable($user);
    $days = $date->modify('last day of this year')->diff($date)->days;  // 20 jours
    # Dans la Création, tout est permis mais tout n'est pas utile...

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/01/2017, 21h27
  2. Réponses: 8
    Dernier message: 18/11/2014, 18h33
  3. [Dates] nombre de jours avant Noël
    Par hubald dans le forum Fonctions
    Réponses: 1
    Dernier message: 19/11/2008, 17h32
  4. Réponses: 1
    Dernier message: 14/05/2007, 14h27

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