У меня есть дата PHP в виде 2013-01-22
и я хочу получить дату завтрашнего дня в том же формате, например, 2013-01-23
.
Как это возможно с PHP?
Использовать DateTime
$datetime = new DateTime('tomorrow'); echo $datetime->format('Ymd H:i:s');
Или:
$datetime = new DateTime('2013-01-22'); $datetime->modify('+1 day'); echo $datetime->format('Ymd H:i:s');
Или:
$datetime = new DateTime('2013-01-22'); $datetime->add(new DateInterval("P1D")); echo $datetime->format('Ymd H:i:s');
Или в PHP 5.4+:
echo (new DateTime('2013-01-22'))->add(new DateInterval("P1D")) ->format('Ymd H:i:s');
$tomorrow = date("Ymd", strtotime('tomorrow'));
или
$tomorrow = date("Ymd", strtotime("+1 day"));
Ссылка справки: STRTOTIME ()
Поскольку вы отметили это с помощью strtotime , вы можете использовать его с модификатором +1 day
следующим образом:
$tomorrow_timestamp = strtotime('+1 day', strtotime('2013-01-22'));
Тем не менее, это гораздо лучшее решение для использования DateTime .
<? php //1 Day = 24*60*60 = 86400 echo date("dmY", time()+86400); ?>
/** * get tomorrow's date in the format requested, default to Ymd for MySQL (eg 2013-01-04) * * @param string * * @return string */ public static function getTomorrowsDate($format = 'Ym-d') { $date = new DateTime(); $date->add(DateInterval::createFromDateString('tomorrow')); return $date->format($format); }
-/** * get tomorrow's date in the format requested, default to Ymd for MySQL (eg 2013-01-04) * * @param string * * @return string */ public static function getTomorrowsDate($format = 'Ym-d') { $date = new DateTime(); $date->add(DateInterval::createFromDateString('tomorrow')); return $date->format($format); }
По странному может показаться, что он отлично работает: date_create( '2016-02-01 + 1 day' );
echo date_create( $your_date . ' + 1 day' )->format( 'Ymd' );
Должен это делать
здесь работает функция
function plus_one_day($date){ $date2 = formatDate4db($date); $date1 = str_replace('-', '/', $date2); $tomorrow = date('Ym-d',strtotime($date1 . "+1 days")); return $tomorrow; }
echo date ('Ym-d',strtotime('+1 day', strtotime($your_date)));
Использовать DateTime
:
Добраться завтра с этого момента:
$d = new DateTime('+1day'); $tomorrow = $d->format('d/m/Y his'); echo $tomorrow;
Результаты: 28/06/2017 08.13.20
Завтра с даты:
$d = new DateTime('2017/06/10 08.16.35 +1day') $tomorrow = $d->format('d/m/Y his'); echo $tomorrow;
Результаты: 11/06/2017 08.16.35
Надеюсь, поможет!
$date = '2013-01-22'; $time = strtotime($date) + 86400; echo date('Ym-d', $time);
Где 86400 – это количество секунд в день.