Как я могу найти первую и последнюю дату в месяц с помощью PHP? Например, сегодня 21 апреля 2010 года; Я хочу найти 1 апреля 2010 года и 30 апреля 2010 года.
Как я могу найти первую и последнюю дату в месяц с помощью PHP?
Ответ 1
Самый простой способ - использовать date
, который позволяет смешивать жестко заданные значения с единицами, извлеченными из метки времени. Если вы не указали временную метку, она принимает текущую дату и время.
// 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()
выполняет поиск строки, заданной, например, 'm-t-Y'
, для определенных символов и заменяет их значениями из метки времени. Поэтому мы можем использовать эти символы для извлечения значений и форматирования, которые мы хотим из метки времени. В приведенных выше примерах:
-
Y
дает вам 4-значный год с меткой времени ('2010') -
m
дает вам числовой месяц из метки времени с начальным нулем ('04') -
t
дает вам количество дней в месяце метки времени ('30')
Вы можете быть творческим с этим. Например, чтобы получить первую и последнюю секунду месяца:
$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!
См. http://php.net/manual/en/function.date.php для других символов и более подробной информации.
Ответ 2
Простой
- Y - полное числовое представление года, 4 цифры
- m - числовое представление месяца с ведущими нулями
- t - количество дней в данном месяце
Ссылка - http://www.php.net/manual/en/function.date.php
<?php
echo 'First Date = ' . date('Y-m-01') . '<br />';
echo 'Last Date = ' . date('Y-m-t') . '<br />';
?>
Ответ 3
Вы можете использовать функцию даты, чтобы узнать, сколько дней в месяце есть.
// 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.
Надеюсь, что это поможет.
EDIT: после прочтения ответа Луиса мне пришло в голову, что вы можете хотеть его в правильном формате (YY-mm-dd). Это может быть очевидно, но не стоит упоминать:
// After the above code
echo date('Y-m-t', $ts);
Ответ 4
Это даст вам последний день месяца:
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);
}
И первый день:
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);
}
Ответ 5
Для конкретных месяцев и год используйте дату() как естественный язык, как показано ниже
$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?
но для текущего месяца
$first_date = date('d-m-Y',strtotime('first day of this month'));
$last_date = date('d-m-Y',strtotime('last day of this month'));
Ответ 6
Если вы хотите найти первый день и последний день с указанной переменной даты, вы можете сделать это, как показано ниже:
$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);
Для текущей даты просто используйте это
$first_date = date('Y-m-d',strtotime('first day of this month'));
$last_date = date('Y-m-d',strtotime('last day of this month'));
Ответ 7
Чтобы получить первую и последнюю дату 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);
Ответ 8
$month=01;
$year=2015;
$num = cal_days_in_month(CAL_GREGORIAN, $month, $year);
echo $num;
отображение 31 последний день даты
Ответ 9
В простом формате
$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);
В течение следующего месяца измените $curMonth на $curMonth = date ('F', strtotime ( "+ 1 месяц" ));