96 votes

Obtenir le numéro de semaine (dans l'année) à partir d'une date PHP

Je veux prendre une date et calculer son numéro de semaine.

Jusqu'à présent, j'ai obtenu les résultats suivants. Il renvoie 24 alors qu'il devrait renvoyer 42.

<?php
$ddate = "2012-10-18";
$duedt = explode("-",$ddate);
$date = mktime(0, 0, 0, $duedt[2], $duedt[1],$duedt[0]);
$week = (int)date('W', $date);
echo "Weeknummer: ".$week;
?>

Est-ce une erreur et une coïncidence que les chiffres soient inversés ? Ou suis-je sur le point d'y arriver ?

210voto

Second Rikudo Points 59550

Aujourd'hui, en utilisant la fonction DateTime Les objets sont meilleurs :

<?php
$ddate = "2012-10-18";
$date = new DateTime($ddate);
$week = $date->format("W");
echo "Weeknummer: $week";

C'est parce qu'en mktime() Il s'agit d'un processus qui se déroule de la manière suivante :

mktime(hour, minute, second, month, day, year);

Votre commande est donc erronée.

<?php
$ddate = "2012-10-18";
$duedt = explode("-", $ddate);
$date  = mktime(0, 0, 0, $duedt[1], $duedt[2], $duedt[0]);
$week  = (int)date('W', $date);
echo "Weeknummer: " . $week;
?>

64voto

pbond Points 693
$date_string = "2012-10-18";
echo "Weeknummer: " . date("W", strtotime($date_string));

22voto

cjtech Points 113

Utiliser la fonction date de PHP
http://php.net/manual/en/function.date.php

date("W", $yourdate)

14voto

user3133144 Points 147

Cela permet d'obtenir la date du jour, puis d'indiquer le numéro de la semaine.

<?php
 $date=date("W");
 echo $date." Week Number";
 ?>

9voto

Andrew Myers Points 181

Il s'agit d'une simple suggestion :

<?php echo date("W", strtotime("2012-10-18")); ?>

Cela pourrait être un peu plus simple que tout cela.

D'autres choses que vous pourriez faire :

<?php echo date("Weeknumber: W", strtotime("2012-10-18 01:00:00")); ?>
<?php echo date("Weeknumber: W", strtotime($MY_DATE)); ?>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X