Comment puis-je trouver la première et la dernière date d'un mois en utilisant PHP? Par exemple, nous sommes le 21 avril 2010; Je veux trouver le 1er avril 2010 et le 30 avril 2010.
Le moyen le plus simple consiste à utiliser date
, qui vous permet de mélanger des valeurs codées en dur avec celles extraites d'un horodatage. Si vous ne donnez pas d'horodatage, il suppose la date et l'heure actuelles.
// Current timestamp is assumed, so these find first and last day of THIS month
$first_day_this_month = date('m-01-Y'); // hard-coded '01' for first day
$last_day_this_month = date('m-t-Y');
// With timestamp, this gets last day of April 2010
$last_day_april_2010 = date('m-t-Y', strtotime('April 21, 2010'));
date()
recherche dans la chaîne donnée, telle que 'm-t-Y'
, des symboles spécifiques et les remplace par les valeurs de son horodatage. Nous pouvons donc utiliser ces symboles pour extraire les valeurs et le formatage souhaités à partir de l'horodatage. Dans les exemples ci-dessus:
Y
vous donne l'année à 4 chiffres à partir de l'horodatage ('2010')m
vous donne le mois numérique à partir de l'horodatage, avec un zéro non significatif ('04')t
vous donne le nombre de jours dans le mois de l'horodatage ('30')Vous pouvez être créatif avec cela. Par exemple, pour obtenir la première et la dernière seconde d'un mois:
$timestamp = strtotime('February 2012');
$first_second = date('m-01-Y 00:00:00', $timestamp);
$last_second = date('m-t-Y 12:59:59', $timestamp); // A leap year!
Voir http://php.net/manual/en/function.date.php pour d'autres symboles et plus de détails.
Un simple
Référence - http://www.php.net/manual/fr/function.date.php
<?php
echo 'First Date = ' . date('Y-m-01') . '<br />';
echo 'Last Date = ' . date('Y-m-t') . '<br />';
?>
Vous pouvez utiliser la fonction de date pour déterminer le nombre de jours dans un mois.
// Get the timestamp for the date/month in question.
$ts = strtotime('April 2010');
echo date('t', $ts);
// Result: 30, therefore, April 30, 2010 is the last day of that month.
J'espère que cela pourra aider.
EDIT: Après avoir lu la réponse de Luis, je me suis dit que vous voudriez peut-être qu'elle soit dans le bon format (AA-mm-jj). Cela peut paraître évident, mais cela ne fait pas de mal de mentionner:
// After the above code
echo date('Y-m-t', $ts);
Cela vous donnera le dernier jour du mois:
function lastday($month = '', $year = '') {
if (empty($month)) {
$month = date('m');
}
if (empty($year)) {
$year = date('Y');
}
$result = strtotime("{$year}-{$month}-01");
$result = strtotime('-1 second', strtotime('+1 month', $result));
return date('Y-m-d', $result);
}
Et le premier jour:
function firstDay($month = '', $year = '')
{
if (empty($month)) {
$month = date('m');
}
if (empty($year)) {
$year = date('Y');
}
$result = strtotime("{$year}-{$month}-01");
return date('Y-m-d', $result);
}
Pour mois et année spécifiques, utilisez date () comme langage naturel comme suit
$first_date = date('d-m-Y',strtotime('first day of april 2010'));
$last_date = date('d-m-Y',strtotime('last day of april 2010'));
// Isn't it simple way?
mais pour le mois en cours
$first_date = date('d-m-Y',strtotime('first day of this month'));
$last_date = date('d-m-Y',strtotime('last day of this month'));
Si vous voulez trouver le premier jour et le dernier jour de la variable de date spécifiée, procédez comme suit:
$date = '2012-02-12';//your given date
$first_date_find = strtotime(date("Y-m-d", strtotime($date)) . ", first day of this month");
echo $first_date = date("Y-m-d",$first_date_find);
$last_date_find = strtotime(date("Y-m-d", strtotime($date)) . ", last day of this month");
echo $last_date = date("Y-m-d",$last_date_find);
Pour la date actuelle, utilisez simplement cette
$first_date = date('Y-m-d',strtotime('first day of this month'));
$last_date = date('Y-m-d',strtotime('last day of this month'));
En format simple
$curMonth = date('F');
$curYear = date('Y');
$timestamp = strtotime($curMonth.' '.$curYear);
$first_second = date('Y-m-01 00:00:00', $timestamp);
$last_second = date('Y-m-t 12:59:59', $timestamp);
Pour le mois prochain, changez $ curMonth en $ curMonth = date ('F', strtotime ("+ 1 mois"));
Pour obtenir la première et la dernière date de Last Month
;
$dateBegin = strtotime("first day of last month");
$dateEnd = strtotime("last day of last month");
echo date("D-F-Y", $dateBegin);
echo "<br>";
echo date("D-F-Y", $dateEnd);
$month=01;
$year=2015;
$num = cal_days_in_month(CAL_GREGORIAN, $month, $year);
echo $num;
afficher 31 dernier jour de la date