Я ищу следующий четверг после определенной даты, скажем, 2014-02-25
. Проблема, с которой я столкнулась, заключается в том, что, когда я использую приведенный ниже код, время кажется стираемым.
<?php $timestamp = '2014-02-25 10:30:00'; echo date('Ymd H:i:s', strtotime("next Thursday", strtotime($timestamp))); ?>
Результат, который я получаю, – 2014-02-27 00:00:00
когда я хочу, чтобы это было 2014-02-27 10:30:00
Есть ли что-то, что мне не хватает здесь, что заставляет время быть установленным до полуночи?
Я ценю помощь, спасибо.
Нет формата времени, который может прямо выражать это. Вам нужно создать такой формат, как
next Thursday 10:30:00
… вручную и передать это strtotime()
. Информация о времени вам необходимо извлечь из опорного времени строки. Как это:
$refdate = '2014-02-25 10:30:00'; $timestamp = strtotime($refdate); echo date('Ymd H:i:s', strtotime("next Thursday " . date('H:i:s', $timestamp), $timestamp) );
Те же результаты могут быть достигнуты при использовании конкатенации строк:
echo date('Ym-d', strtotime("next Thursday", $timestamp) . ' ' . date('H:i:s', $timestamp);
Документацию для так называемых relative time formats
можно найти здесь