У меня есть дата PHP в форме, 2013-01-22
и я хочу получить дату завтрашнего дня в том же формате, например 2013-01-23
.
Как это возможно с PHP?
Использовать DateTime
$datetime = new DateTime('tomorrow');
echo $datetime->format('Y-m-d H:i:s');
Или:
$datetime = new DateTime('2013-01-22');
$datetime->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');
Или:
$datetime = new DateTime('2013-01-22');
$datetime->add(new DateInterval("P1D"));
echo $datetime->format('Y-m-d H:i:s');
Или в PHP 5.4+:
echo (new DateTime('2013-01-22'))->add(new DateInterval("P1D"))
->format('Y-m-d H:i:s');
$tomorrow = date("Y-m-d", strtotime('tomorrow'));
или
$tomorrow = date("Y-m-d", 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("d-m-Y", time()+86400); ?>
источник
echo date ('Y-m-d',strtotime('+1 day', strtotime($your_date)));
источник
Использование
DateTime
:Чтобы получить завтра прямо сейчас:
$d = new DateTime('+1day'); $tomorrow = $d->format('d/m/Y h.i.s'); echo $tomorrow;
Чтобы получить завтра со свидания:
$d = new DateTime('2017/06/10 08.16.35 +1day') $tomorrow = $d->format('d/m/Y h.i.s'); echo $tomorrow;
Надеюсь, это поможет!
источник
/** * get tomorrow's date in the format requested, default to Y-m-d for MySQL (e.g. 2013-01-04) * * @param string * * @return string */ public static function getTomorrowsDate($format = 'Y-m-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( 'Y-m-d' );
Должен сделать это
источник
Во-первых, всегда ключевым моментом является создание правильных абстракций. ключ к удобочитаемости, ремонтопригодности и расширяемости.
Здесь вполне очевидный кандидат - файл
ISO8601DateTime
. Есть как минимум две реализации: первая - это анализируемое datetime из строки, а вторая - завтра. Следовательно, можно использовать два класса, и их сочетание приводит к (почти) желаемому результату:new Tomorrow(new FromISO8601('2013-01-22'));
Оба объекта представляют собой дату и время ISO8601, поэтому их текстовое представление не совсем то, что вам нужно. Итак, последний штрих - заставить их принять форму даты:
new Date( new Tomorrow( new FromISO8601('2013-01-22') ) );
Поскольку вам нужно текстовое представление, а не просто объект, вы вызываете
value()
метод.Чтобы узнать больше об этом подходе, посмотрите этот пост .
источник
вот рабочая функция
function plus_one_day($date){ $date2 = formatDate4db($date); $date1 = str_replace('-', '/', $date2); $tomorrow = date('Y-m-d',strtotime($date1 . "+1 days")); return $tomorrow; }
источник
$date = '2013-01-22'; $time = strtotime($date) + 86400; echo date('Y-m-d', $time);
Где 86400 - количество секунд в дне.
источник