Я использую следующий код PHP, чтобы показать другой текст (только один) каждую неделю:
<?php
$items = [
[
'start' => '2020-02-03',
'end' => '2020-02-09',
'html' => 'Text #1'
],
[
'start' => '2020-02-10',
'end' => '2020-02-16',
'html' => 'Text #2'
],
[
'start' => '2020-02-17',
'end' => '2020-02-23',
'html' => 'Text #3'
],
];
$currentDate = date('Y-m-d');
foreach ($items as $item) {
if ($currentDate >= $item[start] && $currentDate <= $item[end]) echo $item[html];
}
Это работает. Но есть ли лучший (то есть чище, быстрее) способ достичь того же результата? L oop действительно необходим? Спасибо.
ОБНОВЛЕНИЕ
Вдохновленный ответом Progrock (что я благодарен), я бы изменил свой код следующим образом:
$items =
[
'06' => 'Text #1',
'07' => 'Text #2',
'08' => 'Text #3',
'09' => 'Text #4'
];
$date = new DateTime(date('Y-m-d'));
echo $items[$date->format('W')];
Я думаю это лучшее решение (для того, что мне нужно).