Пытаясь найти предыдущие шесть дней, учитывая любую дату - PullRequest
3 голосов
/ 25 марта 2010

Я прекрасно использую strtotime для поиска записей предыдущей и следующей недель в моей базе данных, но я не могу найти, как найти предыдущие шесть дней, если пользователь выбирает дату прошлого. *

Вот как я знаю, что сегодня и шесть дней назад:

$today = date("Y-m-d");
$minus6 = date('Y-m-d', strtotime('-6 days'));

Теперь, как я могу переключить $ сегодня с помощью $ dateString, как указано в входах моих пользователей? Я думал что-то вроде этого, основываясь на моих поисках в Google, но это не дает результатов:

$dateString = 2010-01-25; // for example
$minus6 = date('Y-m-d', strtotime('-6 days, $dateString');

Мне не хватает какой-то фундаментальной информации о датах, времени или что? Спасибо за любую помощь.

Ответы [ 2 ]

3 голосов
/ 26 марта 2010

Второй параметр strtotime - это отметка времени, из которой будет рассчитан первый аргумент:

echo date('Y-m-d', strtotime('-6 days', strtotime($dateString));

Но вы также можете сделать это , как предложил Гэвин .

1 голос
/ 26 марта 2010

Вы должны поставить фактическую дату перед любым из модификаторов в strtotime (). Например:

$dateString = 2010-01-25; // for example
$minus6 = date('Y-m-d', strtotime('-6 days, $dateString'));

Должно стать: -

$dateString = "2010-01-25"; // for example
$minus6 = date('Y-m-d', strtotime("$dateString -6 days"));

... или передать его в качестве явной временной метки в качестве второго параметра strtotime () согласно ответу Гордона.

...