Как получить следующую дату с определенным временем в PHP - PullRequest
4 голосов
/ 01 июня 2011

Я хочу получить дату с определенным днем ​​и временем в PHP, как я хочу получить дату следующего дня и время в 9:30 утра, т.е. "2011-06-02 09:30:00". код, который я использовал, чтобы сделать это,

<?php
   $next_day_date = date("Y")."-".date("m")."-".(date("d")+1)."  09:30:00";
   $new_trig_time_stamp = strtotime($next_day_date);
   $trigger_date_time = date("Y-m-d H:i:s",$new_trig_time_stamp);
   echo $trigger_date_time;
?>

приведенный выше код работает нормально, но не работает 31 день, 31-го возвращается «1970-01-01 05:30:00». Есть ли другой способ сделать это.

Ответы [ 5 ]

6 голосов
/ 01 июня 2011

При смещении дат на фиксированное число лучше использовать mktime(), поскольку он хорошо обрабатывает недопустимые даты (например, он знает, что 32 января фактически 1 февраля)

$trigger_date_time = date("Y-m-d H:i:s", mktime(9,30,0, date('n'), date('j')+1, date('Y'));
2 голосов
/ 01 июня 2011

strtotime() очень полезно здесь.

$trigger_date_time = date( "Y-m-d H:i:s", strtotime( "tomorrow 9:30" ) );
1 голос
/ 01 июня 2011

Рассчитайте его с помощью метки времени Unix - намного меньше раздражения

<?php
   $trigger_date_time = date("Y-m-d 09:30:00",time() + 60*60*24);
   echo $trigger_date_time;
?>
0 голосов
/ 01 июня 2011
echo date('Y-m-d', strtotime('+1 day')) . ' 09:30:30';
0 голосов
/ 01 июня 2011

Посмотрите на date_add.

Более подробно, что-то вроде ...

$myDate = new DateTime("Some time");
$myDate->add(new DateInterval("P1D"));

Затем вы можете использовать $myDate->format(…) для извлеченияотформатированные представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...