Как найти дату начала и дату окончания любого года и месяца

У меня есть проблема в php find start date и дата окончания месяца и года, когда я знаю год и месяц?

ex:

input - > year = 2011 , month = 08
output -> start date = 01 , end date = 31

Ответы

Ответ 1

echo date('m-01-Y 00:00:00',strtotime('this month')) . '<br/>';
echo date('m-t-Y 12:59:59',strtotime('this month')) . '<br/>';

Ответ 2

Дата начала всегда будет 1, и вы можете найти дату окончания со следующей функцией

cal_days_in_month(CAL_GREGORIAN, $month, $year);

Ответ 3

Использовать дату (формат t дает дни в году) и создать для нее время:

$year = 2011; $month = 6;

$starts = 1;
$ends = date('t', strtotime($month.'/'.$year)); //Returns days in month 6/2011

Ответ 4

Я действительно не могу понять вас четко, но чтобы получить дату начала здесь, это код

date('Y-m-d');

этот код выше даст вам сегодня день и для завершения конца месяца этот код, который я использовал до

date(’Y-m-d’,strtotime(’-1 second’,strtotime(’+1 month’,strtotime(date(’m').’/01/’.date(’Y').’ 00:00:00′))));

Надеюсь, это поможет вам в вашей проблеме.

Ответ 5

hi Попробуйте этот способ, вы можете это сделать

function firstOfMonth() {
return date("m/d/Y", strtotime(date('m').'/01/'.date('Y').' 00:00:00'));
}

function lastOfMonth() {
return date("m/d/Y", strtotime('-1 second',strtotime('+1 month',strtotime(date('m').'/01/'.date('Y').' 00:00:00'))));
}

$date_start = firstOfMonth();
$date_end  = lastOfMonth();`

Ответ 6

Вы должны посмотреть в strtotime:

echo date("D, M j, Y", strtotime("FIRST DAY OF MAY 2012"));
// Tue, May 1, 2012
echo date("D, M j, Y", strtotime("last DAY june 2012")); // gotcha! using June.
// Thu, May 31, 2012

Ответ 7

PHP может иметь более элегантный способ сделать это, но если вам нужен общий алгоритм, вот что вам нужно сделать...

Все месяцы, кроме февраля, имеют фиксированное количество дней. Февраль имеет 29 только тогда, когда он високосный год. Вот правила, чтобы проверить, является ли это високосным годом:

  • Если год равномерно делится на 4, перейдите к шагу 2. В противном случае перейдите к шагу 5.
  • Если год равномерно делится на 100, перейдите к шагу 3. В противном случае перейдите к шагу 4.
  • Если год равномерно делится на 400, перейдите к шагу 4. В противном случае перейдите к шагу 5.
  • Год - високосный год (февраль - 29 дней).
  • Год не високосный год (февраль имеет 28 дней).

Ответ 8

$year = '2017';
$month = '05';
echo date("$year-$month-01");
echo "<br>";
echo date("$year-$month-t");

кратчайшее решение по моему мнению.