У меня проблема в php find start date & end date месяца и года, когда я знаю год и месяц?
например:
input - > year = 2011 , month = 08 output -> start date = 01 , end date = 31
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 лет, только когда это високосный год. Вот правила, чтобы проверить, является ли это високосный год:
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");
самое короткое решение по моему мнению.