Page 1 sur 1

la date à partir du numéro de jour

Posté : 09 déc. 2008, 15:05
par bozo
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

Posté : 09 déc. 2008, 16:05
par Yosh
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")));

Posté : 09 déc. 2008, 16:14
par bozo
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.

Posté : 09 déc. 2008, 16:41
par Yosh
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.

Posté : 09 déc. 2008, 17:19
par bozo
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 ...)

Posté : 09 déc. 2008, 17:50
par blof
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";

?>

Posté : 09 déc. 2008, 17:54
par bozo
finalement yosh n'était pas si loin que ça ...
MERCI A VOUS DEUX :)

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