la date à partir du numéro de jour

bozo
Invité n'ayant pas de compte PHPfrance

09 déc. 2008, 15:05

Hello

Si je sais que le jour est le 365 je dois pouvoir ressortir la date "2008-12-31" mais je n'arrive pas à trouver comment :'(

Comment je fais ? (évidement j'ai déjà fais quelques recherches en vain ...)

Merciiiii

Mammouth du PHP | 568 Messages

09 déc. 2008, 16:05

Ce n'est pas très clair, tu veux ajouter un certain nombre de jour à une date?

Si oui, tu n'a pas cherché comme il faut, puisque j'ai la solution (trouver en 10s with google).

Regarde avec quelque chose dans ce genre.
$dans10jours = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+10,  date("Y")));
Modifié en dernier par Yosh le 09 déc. 2008, 16:30, modifié 1 fois.

bozo
Invité n'ayant pas de compte PHPfrance

09 déc. 2008, 16:14

Merci pour ta réponse mais ce n'est pas tout ça fait ça :

en fait j'affiche un calendrier dans un tableau linéaire (sur une seule ligne quoi) et je connais le numéro de jour dans chaque cellule. Je voudrais maintenant retranscrire ce numéro de jour en vraie date SQL.

J'utilise aussi évidement une variable $annee qui varie selon l'année choisie.

Mammouth du PHP | 568 Messages

09 déc. 2008, 16:41

Merci pour ta réponse mais ce n'est pas tout ça fait ça :

en fait j'affiche un calendrier dans un tableau linéaire (sur une seule ligne quoi) et je connais le numéro de jour dans chaque cellule. Je voudrais maintenant retranscrire ce numéro de jour en vraie date SQL.

J'utilise aussi évidement une variable $annee qui varie selon l'année choisie.
Ok, ce n'est pas très clair mais si je comprend bien tu a un tableau avec des numéro de jour (de 1 a 365 voir 364 selon que l'année soit bisextil ou pas) ainsi qu'une variable année, c'est cela?

Si oui regarde ce code et modifie le afin qu'il s'adapte à ce que tu veux faire.

Je ne peux malheureusement pas tester d'ou je me trouve :/ mais je pense que cela devrait répondre à ta demande.
     $jour_dans_le_mois = array(); 
     $mois = 1; 
     $jour = 0; 
  
      for($a=1;$a<=365+date('L');$a++) {       
            
          // On compte les jours de chaque mois  
          for($i=1;$i<=12;$i++) {          
            $jour += date('t', mktime(0, 0, 0, $i, 1, date('Y'))); 
            $jour_dans_le_mois[$i] = $jour;        
          }  
           
          $today = mktime(0, 0, 0, $mois, $a, date('Y'));         
                  $semaine = date('W', $today); 
          $mardi = date('N', $today); 
          $date = date('d-m-Y', $today); 
          if(in_array($a, $jour_dans_le_mois)) $mois++; 
           
          if($semaine == 35 && $mardi == 2) { 
            echo "Le jour n&deg;".$a." de la date ".$date." est le Mardi de la semaine 35 pour l'ann&eacute;e ".date('Y'); break; }  
     } 
Si jamais cela te convient et que tu trouve la solution, merci de la poster ^^

Bon courage.

bozo
Invité n'ayant pas de compte PHPfrance

09 déc. 2008, 17:19

oula vache faut que j'étudie ça avec attention ^^ferait ça ce soir.

Sinon voilà un exemple de ce que j'ai. J'ai fais afficher le numéro de jour dans chaque cellule : http://lefuretrouge.fr/walltek/test.php

en fait je veux récupérer une date AAAA-MM-JJ afin de tester si la date est "positive" ou pas et de remplir les cellules (c'est un planning quoi ...)

Eléphant du PHP | 170 Messages

09 déc. 2008, 17:50

bonjour,
Si je sais que le jour est le 365 je dois pouvoir ressortir la date "2008-12-31"
si le premier jour de l'année est le jour n°1, le 365ième correspond à la date "2008-12-30"
( ou alors tu numérotes à partir de 0 et il faudra mettre mktime(0,0,0,1,$jour+1,$an) )
<?php

$an = 2008;
$jour = 365;

$date = date('Y-m-d', mktime(0,0,0,1,$jour,$an));

echo $date,"\n";

?>

bozo
Invité n'ayant pas de compte PHPfrance

09 déc. 2008, 17:54

finalement yosh n'était pas si loin que ça ...
MERCI A VOUS DEUX :)

C'en est si simple que j'en ai honte ^^