DateTime()->sub/add против DateTime->изменитьPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 DateTime()->sub/add против DateTime->изменить

Сообщение Anonymous »

Я пишу код, который будет выполнять 3 запроса для выбора элементов, срок действия которых истекает в течение 30, 60 и 90 дней:

Код: Выделить всё

$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}'");
}
Этот код работает без проблем. Коллега предложил мне заменить код внутри цикла foreach
на следующий:

Код: Выделить всё

$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}'");
Он аргументировал это изменение тем, что это будет означать отсутствие необходимости создавать экземпляры 2 DateIntervals в каждом цикле.
Я не согласен с его рассуждениями главным образом потому, что ->modify это более старый способ изменения даты, и я не на 100%
убежден, что его способ приведет к увеличению производительности (хотя снижение производительности в любом случае
будет незначительным).< /p>

Если кто-нибудь может предоставить доказательства того, какой способ лучше (любой вариант приветствуется), я был бы очень благодарен!

Подробнее здесь: https://stackoverflow.com/questions/447 ... ime-modify
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»