Intereting Posts

Как получить предыдущий и следующий месяц?

$year = 2010; $month = 10; 

Как получить предыдущий месяц 2010-09 и следующий месяц 2010-11 ?

 $date = mktime( 0, 0, 0, $month, 1, $year ); echo strftime( '%B %Y', strtotime( '+1 month', $date ) ); echo strftime( '%B %Y', strtotime( '-1 month', $date ) ); 

попробуйте:

 $date = mktime(0, 0, 0, $month, 1, $year); echo date("Ym", strtotime('-1 month', $date)); echo date("Ym", strtotime('+1 month', $date)); 

или, короче, вот так:

 echo date("Ym", mktime(0, 0, 0, $month-1, 1, $year)); echo date("Ym", mktime(0, 0, 0, $month+1, 1, $year)); 

PHP является удивительным в этом отношении, он будет обрабатывать переполнение даты, исправляя дату для вас …

 $PreviousMonth = mktime(0, 0, 0, $month - 1, 1, $year); $CurrentMonth = mktime(0, 0, 0, $month, 1, $year); $NextMonth = mktime(0, 0, 0, $month + 1, 1, $year); echo '<p>Next month is ' . date('Ym', $NextMonth) . ' and previous month is ' . date('Ym', $PreviousMonth . '</p>'; 
 $prevMonth = $month - 1; $nextMonth = $month + 1; $prevYear = $year; $nextYear = $year; if ($prevMonth < 1) { $prevMonth = 1; $prevYear -= 1; } if ($nextMonth > 12) { $nextMonth = 1; $nextYear += 1 } 

или

 // PHP > 5.2.0 $date = new DateTime(); $date->setDate($year, $month, 1); $prevDate = $date->modify('-1 month'); $nextDate = $date->modify('+1 month'); // some $prevDate->format() and $nextDate->format() 

Вы можете просто добавить 1 к текущему месяцу, а затем посмотреть, пересек ли вы год:

 $next_year = $year; $next_month = ++$month; if($next_month == 13) { $next_month = 1; $next_year++; } 

Аналогично за предыдущий месяц вы можете сделать:

 $prev_year = $year; $prev_month = --$month; if($prev_month == 0) { $prev_month = 12; $prev_year--; } 

strftime * : – * Отформатируйте время и / или дату в соответствии с настройками локали. Месяц и названия дней недели и другие зависящие от языка строки соответствуют текущему языку, установленному с помощью setlocale ().

 strftime( '%B %Y', strtotime( '+1 month', $date ) ); strftime( '%B %Y', strtotime( '-1 month', $date ) ); 
  echo date('Ym-d', strtotime('next month')); 
  setlocale(LC_TIME,"turkish"); $Currentmonth=iconv("ISO-8859-9","UTF-8",strftime('%B')); $Previousmonth=iconv("ISO-8859-9","UTF-8",strftime('%B',strtotime('-1 MONTH'))); $Nextmonth=iconv("ISO-8859-9","UTF-8",strftime('%B',strtotime('+1 MONTH'))); echo $Previousmonth; // Şubat /* 2017-02 */ echo $Currentmonth; // Mart /* 2017-03 */ echo $Nextmonth; // Nisan /* 2017-04 */