35 votes

En PHP, existe-t-il un moyen facile d'obtenir la première et la dernière date d'un mois?

Je dois obtenir le premier et le dernier jour du mois dans le format AAAA-MM-JJ indiqué uniquement le mois et l'année. Y at-il un bon moyen facile de faire cela?

64voto

Michał Rudnicki Points 8424
 $first = date('Y-m-d', mktime(0, 0, 0, $month, 1, $year));
$last = date('Y-m-t', mktime(0, 0, 0, $month, 1, $year));
 

Voir date () dans la documentation PHP.

7voto

Biri Points 4992

Le premier jour est toujours AAAA-MM-01, n'est-ce pas? Exemple: date("Y-M-d", mktime(0, 0, 0, 8, 1, 2008))

Le dernier jour est le jour précédent du premier jour du mois suivant:

 $date = new DateTime("2008-09-01");
$date->modify("-1 day");
echo $date->format("Y-m-d");
 

3voto

Niyaz Points 16307

Le premier jour du mois est toujours 1. Donc ça deviendra

 YYYY-MM-01
 

le dernier jour peut être calculé comme suit:

 <?php
    $num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
    echo "There was $num days in August 2003";
?>
 

2voto

ZombieSheep Points 18967

OK, le premier est très facile.

 date ('Y-m-d', mktime(0,0,0,MM,01,YYYY));
 

Last est un peu plus compliqué, mais pas beaucoup.

 date ('Y-m-d', mktime(0,0,0,MM + 1,-1,YYYY));
 

Si je me souviens bien de ma date de PHP

** modifier - Gah! Battue environ un million de fois ...

Edité par Pat:

Le dernier jour aurait dû être

 date ('Y-m-d', mktime(0,0,0,$MM + 1,0,$YYYY)); // Day zero instead of -1
 

2voto

Eranda Points 144
<?php
echo "Month Start - " . $monthStart = date("Y-m-1") . "<br/>";
$num = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y"));
echo "Monthe End - " . $monthEnd = date("Y-m-".$num);
?>

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