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] Comment obtenir le premier jour d'une semaine ?


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut [Dates] Comment obtenir le premier jour d'une semaine ?
    Bonjour à tous,

    Comment peut on obtenir le premier jour de la semaine 'w' de l'année 'y' :

    en d'autre terme par exemple qu'elle est le premier jour de la semaine 3 en 2007.

    La réponse étant lundi 15 janvier 2007

    Merci beaucoup

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    1. Tu détermines la date du lundi de la semaine N° 1 ;
    2. A cette date, tu appliques un décallage de x semaines (semaine recherchée - 1)

  3. #3
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    Comme ca :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
     
    $_week = 3;
    $_year = 2007;
     
    $days = (($_week - 1) * 7) + 1;
    echo '<p>Jour : '.$days.'</p>';
     
    $test = true;
    $month = 1;
    while ($month < 13 && $test == true)
    {
    	$dayInMonth = date('t', mktime(0, 0, 0, $month, 1, $_year));
     
    	if ($days - $dayInMonth >= 0)
    	{
    		echo 'oki';
    		$days -= $dayInMonth;
    		$month++;
    	}
    	else
    	{
    		$test = false;
    	}
    }
     
    echo '<p>Mois : '.$month.'</p>';
     
    $days = $days - date('N', mktime(0, 0, 0, 1, 1, $_year)) + 1;
     
    echo '<p>'.date('l\, j F Y', mktime(0, 0, 0, $month, $days, $_year)).'</p>';
     
    ?>

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Contrairement au précédent, le code ci-dessous fonctionne correctement :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?php
    function dateLundi($annee, $numSemaine)
    {
      //-- retourne la date du lundi de la semaine N° xx ------------------------------
     
      //-- détermination de la date du lundi de la semaine N° 1 -----------------------
      //-- $TSPremierLundi = timestamp du 1er lundi de janvier ------------------------
      $TSPremierLundi = strtotime('first monday', mktime(0, 0, 0, 1, 1, $annee));
      //-- $semainePremierLundi = N° de semaine du 1er lundi de janvier ---------------
      $semainePremierLundi = date('W', $TSPremierLundi);
      //-- si la semaine du 1er lundi est la semaine N° 1, c'est bon ------------------
      //-- sinon, c'est le lundi précédent --------------------------------------------
      $TSLundi = ($semainePremierLundi == 1) ?
    	     $TSPremierLundi :
    	     strtotime('last monday', $TSPremierLundi);
     
      return date('d-m-Y', strtotime('+' . ($numSemaine - 1) . ' week', $TSLundi));
    }
    //---------------------------------------------	
    //---------------------------------------------	
      $annee = 2003;
      $numSemaine = 34;
     
      echo 'la semaine N° ' . $numSemaine . ' de l\'année ' . $annee . ' commence le lundi ' . dateLundi($annee, $numSemaine) . '<br>';
    ?>

  5. #5
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    Prouve moi que mon code fonctionne pas

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Tu n'as qu'à l'essayer. Tu le verras bien tout seul.
    Demandes, par exemple, la date du lundi de la semaine N° 34 de l'année 2003.

  7. #7
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    En effet ^^

    Je prenais pas en compte si le 1er jour de l'année ne tombait pas un lundi ^^

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Merci pour vos réponse, la fonction semble être exactement ce que je recherche.

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut


    Elle fonctionne, je vous remercie pour le temps que vous m'avez consacré

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/07/2008, 17h03
  2. recherche premier jour d'une semaine
    Par lazzeroni dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 08/06/2008, 17h03
  3. Premier jour d'une semaine et le dernier
    Par Philippe608 dans le forum Excel
    Réponses: 4
    Dernier message: 25/05/2008, 14h28
  4. Réponses: 4
    Dernier message: 11/02/2008, 14h41
  5. [DATE] Connaitre l'intervalle de jour d'une semaine
    Par dragonfly dans le forum ASP
    Réponses: 6
    Dernier message: 05/10/2007, 22h56

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