// забирает текущее время в массив<br>
$timestamp = time();<br>
$date_time_array = getdate($timestamp);<br><br>
$hours = $date_time_array['hours'];<br>
$minutes = $date_time_array['minutes'];<br>
$seconds = $date_time_array['seconds'];<br>
$month = $date_time_array['mon'];<br>
$day = $date_time_array['mday'];<br>
$year = $date_time_array['year'];<br><br>
// используйте mktime для обновления UNIX времени<br>
// добавление 45 дней к $day<br>
$timestamp = mktime($hours,$minutes,$seconds,$month,$day + 45,$year);<br>
echo strftime('%d %B %Y',$timestamp);<br>
$trans = array("January" => "Январь",
"February" => "Февраль",
"March" => "Март",
"Apri;" => "Апрель");
$result = strtr( $english_month, $trans);
// Название месяца по метке UNIX
function getMonthName($unixTimeStamp = false) {
// Если не задано время в UNIX, то используем текущий
if (!$unixTimeStamp) {
$mN = date('m');
// Если задано определяем месяц времени
} else {
$mN = date('m', (int)$unixTimeStamp);
}
$monthAr = array(
1 => array('Январь', 'Января'),
2 => array('Февраль', 'Февраля'),
3 => array('Март', 'Марта'),
4 => array('Апрель', 'Апреля'),
5 => array('Май', 'Мая'),
6 => array('Июнь', 'Июня'),
7 => array('Июль', 'Июля'),
8 => array('Август', 'Августа'),
9 => array('Сентябрь', 'Сентября'),
10=> array('Октябрь', 'Октября'),
11=> array('Ноябрь', 'Ноября'),
12=> array('Декабрь', 'Декабря')
);
return $monthAr[(int)$mN];
}
// Текущее время
$curTime = mkitme();
// +45 дней
$curTime += 45*24*3600;
// Получаем название месяца через 45 дней
$monthNameAr = getMonthName ($curTime);
// Выводим в родительном падеже
echo date('d', $curTime).' '.$monthNameAr[1];
// Выводим в именительном падеже
echo date('d', $curTime).' '.$monthNameAr[0];
// создаем дату равной + 45 дней после текущей даты.
$date = new \DateTime('+45 day');
// выводим в нужном формате и заменяем английские слова русскими
// для примера заменяет только два названия месяца, мне лень
$localisedResult = str_replace(array('December', 'February'), array('Декабря', 'Февраля'), $date->format('d F Y');
$months = [
0, 'января','февраля','марта','апреля',
'мая','июня','июля','августа',
'сентября','октября','ноября', 'декабря'
];
$strNext = "+ 5 month";
$nextYear = date('Y г.', strtotime($strNext));
$nextMonth = date('n', strtotime($strNext));
$nextDate = date('d', strtotime($strNext));
echo 'Через 5 мес. будет ' . $nextDate . ' ' . $months[$nextMonth] . ' ' . $nextYear;
$nextDate = date("d.m.Y", strtotime($dateDB, "+ 5 month"));