Самый простой способ - использовать 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')
Вы можете проявить изобретательность. Например, чтобы получить первую и последнюю секунду месяца:
Просто добавив сюда информацию, у меня возникла проблема с преобразованием даты обратно в метку времени unix с этим форматом, была исправлена с использованием формата 'dmY', а не 'mdY' .. также последняя секунда будет '23: 59: 59 ', а не '12 : 59: 59 '..
Syed Qarib
27
Простой
Y - полное числовое представление года, 4 цифры
m - числовое представление месяца с ведущими нулями
Вы можете использовать функцию даты, чтобы узнать, сколько дней в месяце.
// 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.
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ: после прочтения ответа Луиса мне пришло в голову, что вы можете захотеть его в правильном формате (ГГ-мм-дд). Это может быть очевидно, но не повредит упомянуть:
Для конкретного месяца и года используйте date () как естественный язык, как показано ниже
$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'));
Если вы хотите найти первый и последний день из указанной переменной даты, вы можете сделать это, как показано ниже:
$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'));
Вы можете заменить date ("Ymd", strtotime ($ date)) на $ date, потому что они одинаковы, но вы пишете меньше кода.
nicolascolman
2
Чтобы получить первую и последнюю дату 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);
Ответы:
Самый простой способ - использовать
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 для других символов и более подробной информации.
источник
Простой
Ссылка - 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 />'; ?>
источник
Вы можете использовать функцию даты, чтобы узнать, сколько дней в месяце.
// 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.
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ: после прочтения ответа Луиса мне пришло в голову, что вы можете захотеть его в правильном формате (ГГ-мм-дд). Это может быть очевидно, но не повредит упомянуть:
// After the above code echo date('Y-m-t', $ts);
источник
Это даст вам последний день месяца:
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); }
источник
Для конкретного месяца и года используйте date () как естественный язык, как показано ниже
$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'));
источник
Если вы хотите найти первый и последний день из указанной переменной даты, вы можете сделать это, как показано ниже:
$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'));
источник
Чтобы получить первую и последнюю дату
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);
источник
В простом формате
$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 месяц"));
источник
$month=01; $year=2015; $num = cal_days_in_month(CAL_GREGORIAN, $month, $year); echo $num;
отобразить 31 последний день даты
источник