Код: Выделить всё
$arrDates = array("30"=>array(), "60"=>array(), "90"=>array());
$sDateFormat = 'Y-m-d';
$sQuery = "SELECT *
FROM `table
WHERE `expiry_date` BETWEEN "; // Ranges will be added later
foreach ($arrDates as $sInterval=>$arrContainer)
{
$dtStart = new DateTime();
$dtEnd = new DateTime();
$sRangeStart = $dtStart->add(new DateInterval("P{$sInterval}D"))->format("{$sDateFormat} 00:00:00");
$sRangeEnd = $dtEnd->add(new DateInterval("P{$sInterval}D"))->format("{$sDateFormat} 23:59:59");
$arrDates[$sInterval] = fetch_all($sQuery . "'{$sRangeStart}' AND '{$sRangeEnd}'");
}
на следующий:
Код: Выделить всё
$dtStart = new DateTime();
$dtEnd = new DateTime();
$dtStart->modify("+{$sInterval} days")->setTime(0, 0, 0)->format("{$sDateFormat} 00:00:00");
$dtEnd->modify("+{$sInterval} days")->setTime(23, 59, 59)->format("{$sDateFormat} 23:59:59");
$arrDates[$sInterval] = fetch_all($sQuery . "'{$sRangeStart}' AND '{$sRangeEnd}'");
Я не согласен с его рассуждениями главным образом потому, что ->modify это более старый способ изменения даты, и я не на 100%
убежден, что его способ приведет к увеличению производительности (хотя снижение производительности в любом случае
будет незначительным).< /p>
Если кто-нибудь может предоставить доказательства того, какой способ лучше (любой вариант приветствуется), я был бы очень благодарен!
Подробнее здесь: https://stackoverflow.com/questions/447 ... ime-modify
Мобильная версия