2010-10-12 2 views

ответ

22

date возвращает строку, тогда как вы хотите добавить 86400 секунд в метку времени. Я думаю, что вы ищете это:

$tomorrow = date("Y-m-d", time() + 86400); 
+8

Как насчет DST? –

+8

Действительно, это не удастся из-за перехода на летнее время. Вы не должны так писать арифметику. –

+0

Согласен, что это не учитывает DST. Я просто ответил, основываясь на том, что пытался сделать OP, независимо от того, действительно ли он хочет, чтобы он решал. – casablanca

14

date() возвращает строку, поэтому добавление целого к ней не подходит.

Сначала построить свой завтра метку времени, используя strtotime быть не только чистой, но более точным (см комментарий Пекка в):

$tomorrow_timestamp = strtotime("+ 1 day"); 

Затем, используйте его в качестве второго аргумента для date вызова:

$tomorrow_date = date("Y-m-d", $tomorrow_timestamp); 

Или, если вы находитесь в супер-компактном настроении, что все это может быть отжимается вниз в

$tomorrow = date("Y-m-d", strtotime("+ 1 day")); 
+3

+1, но лучше всего создать временную метку будет 'strtotime (« + 1 день »);' из-за DST –

+0

@Pekka: аккуратно! Отредактировано: – Matchu

6

Ниццу и очевидны:

$tomorrow = strtotime('tomorrow'); 
+1

Аккуратно, но в его нынешнем виде, похоже, не соответствует требованиям OP:/Добавить в этот «день» вызов, и мы будем рады. – Matchu

27

Я рекомендую вам изучить PHP 5.3 DateTime класса. Это делает дату и время намного проще работать с:

$tomorrow = new DateTime('tomorrow'); 

// e.g. echo 2010-10-13 
echo $tomorrow->format('d-m-Y'); 

Кроме того, вы можете использовать синтаксис + 1 day с любой даты:

$xmasDay = new DateTime('2010-12-24 + 1 day'); 
echo $xmasDay->format('Y-m-d'); // 2010-12-25 
+1

+1 для 'DateTime', это будущее. –

+0

@Pekka Согласен - очень хороший api –

0

Вы можете использовать add метод datetime класса. Например, вы хотите добавить один день к текущей дате и времени.

$today = new DateTime(); 
$today->add(new DateInterval('P1D')); 

Далее ссылка php datetime add

Надеется, что это помогает.

Смежные вопросы