сегодня, а не последние 24 часа? - PullRequest
1 голос
/ 29 марта 2011

В моих php-кодах я делаю time () - 86400, чтобы получить все за последние 24 часа, но как я могу получить все сегодня или все со вчерашнего дня.таким образом, это больше не 86400 секунд, это должно быть после 12 часов ночи до текущего времени.

надеюсь, что это имеет смысл ... но как я могу это сделать?

Ответы [ 5 ]

2 голосов
/ 29 марта 2011

Если вы «выбираете» из базы данных, почему бы не сделать это в запросе?

SELECT * FROM `table` WHERE DATE(`created_at`) = '2011-03-28';

Если вы сохраняете дату как метку времени Unix:

SELECT * FROM `table` WHERE DATE(FROM_UNIXTIME(`created_at`)) = '2011-03-28';
1 голос
/ 29 марта 2011

time()-strtotime('today') - разница между сегодняшним днем ​​и полуночью;time()-strtotime('yesterday') - разница между текущей и вчерашней полуночью;time()-strtotime('-2 days') ...

только вчера (диапазон от $ min до $ max)

$start = strtotime('yesterday')
$end = strtotime('today') - 1;

и т. Д.

0 голосов
/ 29 марта 2011

Вы можете использовать функции PHP date и strtotime, чтобы выбрать день с сегодняшнего дня и получить секунды, которые соответствуют конкретной дате.Для получения дополнительной информации см .: http://php.net/manual/en/function.date.php и http://php.net/manual/en/function.strtotime.php

0 голосов
/ 29 марта 2011

Я согласен с Гордоном - здесь так много примеров дат / времени. Но, эй, давайте рассмотрим это снова - если предположить, что сегодня начинается в полночь, вы используете:

$ start = strtotime ('today');

Предполагая, что "сегодня" заканчивается в 23:59, простая арифметика подразумевает, что если вы увеличите $ start на 24 часа и отнимите 1 секунду - вы достигнете конца сегодняшнего дня.

Итак:

$start = strtotime('today');
$end = $start + (3600 * 24) - 1;
0 голосов
/ 29 марта 2011

После этого вы получите секунды, прошедшие с 1 января 1970 года. Каждый объект, отметка времени которого превышает это значение, относится к текущему дню (если вы правильно установили свои часовые пояса и местное время).

$time = strtotime(date('Y-m-d 00:00:00'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...