Как рассчитать относительную дату на основе строки даты - PullRequest
0 голосов
/ 10 июня 2009

Я бы хотел найти дату после даты, предоставленной пользователем

Это не работает:

$start_date = '2009-06-10';

$next_day = date( $start_date, strtotime('+1 day') );     

echo $next_day; // 2009-06-10

Ответы [ 3 ]

2 голосов
/ 10 июня 2009

Попробуйте date_modify:

$d = new DateTime("2009-01-01"); 
date_modify($d, "+1 day"); 
echo $d->format("Y-m-d");

Документация на http://us3.php.net/manual/en/datetime.modify.php.

1 голос
/ 10 июня 2009
$start_date = '2009-06-10';

$next_day = date( 'Y-m-d', strtotime( '+1 day', strtotime($start_date) ) );

echo $next_day; // 2009-06-11
0 голосов
/ 10 июня 2009
$start_date = '2009-06-10';
$next_day = new DateTime($start_date)->modify("+1 day")->format("Y-m-d"); 

EDIT:

Как указала Кристина, этот метод не работает, поскольку DateTime :: modify не возвращает дату изменения, как я подозревал. (PHP, я ненавижу твоё несоответствие!)

Этот код теперь работает как положено и выглядит ИМХО немного более согласованным, чем date_modify:)

$start_date = '2009-06-10';

$next_day = new DateTime($start_date);
$next_day->modify("+1 day")

echo $next_day->format("Y-m-d"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...