[PHP] Obtenir le numéro de la semaine

Obtenir le numéro de la semaine [PHP] - Programmation

Marsh Posté le 17-08-2002 à 12:34:37    

Dans le genre :
 
<?
$date = date("d-m-Y" );
Print("Nous sommes le $date" );
?>
 
J'ai trouvé les arguments suivants :
 
a - "am" (matin) ou "pm" (après-midi)  
A - "AM" (matin) ou "PM" (après-midi)  
d - Jour du mois, sur deux chiffres (éventuellement avec un zéros) : "01" à "31"  
D - Jour de la semaine, en trois lettres (et en anglais) : par exemple "Fri" (pour Vendredi)  
F - Mois, textuel, version longue; en anglais, i.e. "January" (pour Janvier)  
h - Heure, au format 12h, "01" à "12"  
H - heure, au format 24h, "00" à "23"  
g - Heure, au format 12h sans les zéros initiaux, "1" à "12"  
G - Heure, au format 24h sans les zéros initiaux, "0" à "23"  
i - Minutes; "00" à "59"  
j - Jour du mois sans les zéros initiaux: "1" à "31"  
l - ('L' minuscule) - Jour de la semaine, textuel, version longue; en anglais, i.e. "Friday" (pour Vendredi)  
L - Booléen pour savoir si l'année est bissextile ("1" ) ou pas ("0" )  
m - - Mois; i.e. "01" à "12"  
n - Mois sans les zéros initiaux; i.e. "1" à "12"  
M - Mois, en trois lettres (et en anglais) : par exemple "Jan" (pour Janvier)  
s - Secondes; i.e. "00" à "59"  
S - Suffixe ordinal d'un nom
 
 
Mais moi, ce que je cherche, c'est le numéro de la semaine
(entre 1 et 52/53)...
 
  Qqun connaîtrait-il le moyen ?
  merci d'avance

Reply

Marsh Posté le 17-08-2002 à 12:34:37   

Reply

Marsh Posté le 17-08-2002 à 12:41:43    

Tu as oublié le plus important dans ton cas :  

Citation :


z - day of the year; i.e. "0" to "365"  


 
Donc je pense que :

Code :
  1. $num = 1 + (date ("z" ) / 7);


devrais être bon.
 
Edit : je raconte n'importe quoi, toutes les années ne commencent pas un lundi :D. C'est une base de reflexion, pas plus


Message édité par kadreg le 17-08-2002 à 12:42:57

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 17-08-2002 à 12:48:14    

merci, c'est un bon début...
 
mais ptêt qui a une lettre pour la semaine...
(j'en ai essayé plusieurs au hasard mais pas trouvé)
 
ou bien un script ? je suis preneur

Reply

Marsh Posté le 17-08-2002 à 13:39:50    

je sais pas si ça t'aidera, mais il y a un bon article sur Zend concernant les stats d'un site web.
Une des tâche expliquée est le nombre de visite par semaine
http://zend.com/zend/tut/gen-adv-w [...] tal_Weekly
 
en exploitant cela :
$sql = "SELECT WEEK('2002/01/25';);  
 
retourne le numéro de la semaine cad ici : 4
 
facile et efficace, mais mysql travaille pour rien....
 
il y a certainement mieux


---------------
...oups kernel error...
Reply

Marsh Posté le 17-08-2002 à 14:11:11    

ok merci
ça fonctionne
c assez rapide
ça me convient !

Reply

Marsh Posté le 17-08-2002 à 14:29:44    

ah ! un bug !
 
il considère le dimanche comme le premier jour de la semaine !

Reply

Marsh Posté le 17-08-2002 à 14:32:28    

sire de botcor a écrit a écrit :

 
il considère le dimanche comme le premier jour de la semaine !




 
C'est pas un bug pour pas mal de pays qui considèrent que la semaine commence le dimanche.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 17-08-2002 à 14:34:43    

arf désolé ça j'avais pas prévu  :(  
en changeant les locales ?
http://www.php.net/manual/en/function.setlocale.php peut-être ?


---------------
...oups kernel error...
Reply

Marsh Posté le 17-08-2002 à 14:43:15    

ça y est je crois que g trouvé !
tout simplement
 
<?  
$date = date('W';);  
echo $date;  
?>  
 
mais ça fonctionne pas sur un PHP < à 4.1.0 ...
c pour ça que ça fonctionnait pas chez moi qd j'avais essayé des lettres au hasard...

Reply

Marsh Posté le 17-08-2002 à 14:49:52    

http://www.php.net/manual/en/funct [...] f-year.php (php4)
je ne sais pas ce que ça vaut
 
ou un exemple donné comme substitution :

Code :
  1. function week_of_year($nDay, $nMonth, $nYear){
  2.   $date = getdate(mktime(9, 0, 0, $nMonth + 1, $nDay, $nYear)); // 9:00AM at that day  
  3.   return floor($date["yday"]/7) + 1;
  4. }


---------------
...oups kernel error...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed