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 :

utilisation date autre que celle du jour


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut utilisation date autre que celle du jour
    Bonjour,
    Voilà encore une question simple et sans doute évidente !!!
    Je sais obtenir le mois dernier, avec le même jour, de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $le_mois_dernier = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
    Je voudrais obtenir le 5ème jour suivant, du mois dernier, en utilisant $le_mois_dernier
    Je dis bien en utilisant $le_mois_dernier dans une instruction.

    Donc SVP ne me dites pas d'écrire date("d") + 5 .
    Tout simplement parce que dans certains cas le résultat d'une telle écriture n'est pas correct ni ce que je souhaite.

    Je vous remercie.
    Marcel Marie

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    utilise strtotime

  3. #3
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut
    Merci.
    J'ai regardé sur internet l'usage vrai de strtotime.
    Les gens ont dû se "copier" mutuellement car les articles sont tous les mêmes, exemples y compris.

    STR TO TIME sous-entend transformation d'une séquence de caractères en une date, mais aucune explication sur l'utilisation de la date ainsi obtenue.
    ALORS je reviens à mon cas concret.
    Je pense manipuler assez bien mktime qui me permet d'obtenir le jour en cours (ce_jour) et le nombre de jours dans le mois (nb_j).
    Le premier jour du mois actuel est donc :
    (1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prem_jour_mois_courant = mktime(0, 0, 0, date("m"), date("d")-$ce_jour-1, date("Y"));
    Le premier jour du mois suivant sera :
    (2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prem_jour_mois_suivant = mktime(0, 0, 0, date("m"), date("d")-$ce_jour+$nb_j, date("Y"));
    Cette formulation me gêne "intellectuellement" car je souhaiterais que la formule (2) ne mentionne pas ($ce_jour) et ne contienne que $nb_j-1 à partir d'une nouvelle date qui serait évidemment $prem_jour_mois_courant.

    Autrement dit je voudrais travailler avec mktime sur une date autre que la date du jour.

    Dans mon script j'effectue une boucle sur de nombreux mois et ça me paraîtrait plus souple et simple de travailler strictement sur le premier jour du mois de l'itération précédente plutôt que sur la date du jour actuel.

    Eh bien voilà. J'ai donc une solution théorique mais une solution pratique plus ergonomique serait souhaitée, outre une meilleure connaissance de la manipulation des dates en PHP.

    Merci de m'avoir lu. A plus tard.
    Marcel Marie

  4. #4
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut
    Faute avouée est à moitié pardonnée !! ??
    En fait je suis très "ballot" et j'avais mal compris mktime() qui peut n'avoir rien à faire avec la date VRAIE du jour .
    Je vais OBTENIR le mois et ensuite, dans ma boucle, il me suffira d'incrémenter le mois EN FIXE ET NON EN VARIABLE.
    ALORS svp? ON N'ENGUIRLANDE PAS le gars ....

    Marcel Marie, Merci

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    pas dur avec strtotime :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $time = strtotime('last month +5 days');
    echo date('d/m/Y', $time);
    // 06/11/2011

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    stealth a un fanatique de strtotime
    Et il a bien raison !
    Tu peux également utiliser un time de référence dans strtotime au lieu d'utiliser maintenant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $aujourdhui = strtotime('now'); 
    // => 01/12/2011
    $il_y_a_un_mois = strtotime('last month', $aujourdhui); 
    // => 01/11/2011
    $cinq_jours_plus_tard = strtotime('+ 5 days', $il_y_a_un_mois); 
    // => 06/11/2011
    $trois_jours_encore_plus_tard = strtotime('+ 3 days', $cinq_jours_plus_tard); 
    // => 09/11/2011
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Celira Voir le message
    stealth a un fanatique de strtotime
    c'est super puissant, et puis pas te problème de décalage horaire, ni d'année bissextile

    http://fr2.php.net/manual/fr/datetim...s.relative.php

  8. #8
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut
    Bonsoir,
    Je note tout cela bien volontiers car je crois/vois que c'est très intéressant.
    Je vais m'en inspirer au mieux pour le cas exposé.
    Ce n'est tout de même pas inné ni intuitif ces formulations anglaises. BRAVO.
    Je vous remercie tous.
    A bientôt, sur un autre sujet. Je ferme celui-ci.
    Marcel Marie

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 20/02/2009, 11h25
  2. [Dates] Traiter une date autre que celle du jour
    Par malkie dans le forum Langage
    Réponses: 6
    Dernier message: 02/02/2008, 09h04
  3. prendre une autre date que celle du jour
    Par taka10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/01/2007, 16h25
  4. Utiliser MenuBar autre que dans (J)Frame
    Par Belegkarnil dans le forum AWT/Swing
    Réponses: 19
    Dernier message: 24/07/2006, 18h41
  5. [C#] dll autre que celle de ODBC
    Par Lambrosx dans le forum HyperFileSQL
    Réponses: 1
    Dernier message: 25/05/2005, 10h18

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