Это правильный способ получить конец дня в PHP? - PullRequest
0 голосов
/ 04 мая 2019

Я получаю конец дня вот так:

function endofday($date_to_change)
{
  $date_to_change = date('Y-m-d');
  $date_to_change = date('Y-m-d H:i:s', strtotime("+23 hours 59 minutes  59 seconds", strtotime($date_to_change)));
  return date("Y-m-d H:i:s", $date_to_change);
}

Это работает, но это правильный и самый эффективный способ получить 23:59:59 от даты? Моя цель - выбрать строки в базе данных mysql в период с 00:00:00 до 23:59:59 с даты, прошедшей с или без времени.

Ответы [ 2 ]

1 голос
/ 04 мая 2019

Почему бы не использовать date >= start && date < end?

В общем, работа с инклюзивным началом и эксклюзивным концом является стандартным способом программирования. В противном случае вы исключите 23: 59: 59.500.

Также вы получаете всегда правильные (временные) различия при использовании end-start.

Наконец, вы можете использовать end как старт для следующего диапазона без его настройки.

На мой взгляд, использование исключительного конечного значения / времени имеет только преимущества.

Если вы хотите напечатать время, вы можете использовать time-1 для печати 23:59:59 или time-0.001 для печати 23:59:59.999. В любом случае, люди понимают значение until 20:00 как раз до 20:00.

1 голос
/ 04 мая 2019

Можно и так
$ begin = date ('Ymd 00:00:00');
$ end = date ('Ymd 23: 59: 59', strtotime ($ date_to_change));

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