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

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

например:

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

Solutions Collecting From Web of "Как найти дату начала и дату окончания любого года и месяца"

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

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

 cal_days_in_month(CAL_GREGORIAN, $month, $year); 

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

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

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

 date('Ym-d'); 

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

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

я надеюсь, что это поможет вам в вашей проблеме

Вы должны посмотреть в 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 

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

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

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

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();` 
 $year = '2017'; $month = '05'; echo date("$year-$month-01"); echo "<br>"; echo date("$year-$month-t"); 

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