e.target.closest('.item-class')
Согласование, подавление помех и т.д. — я как минимум об этом. Разъем в ноуте и разъем, на конце воткнутого в него двухметрового кабеля — не одно и то же.
function price_format(int|float $price): string {
return str_replace('.00', '', number_format($price, 2, '.', ' ');
}
echo price_format(1234);
echo price_format(1234.45);
Нет, такой не получится.
<div class="outer">
<div class="block-2"></div>
<div class="block-1"></div>
</div>
.outer:has(.block-2 + .block-1:hover) > .block-2 {
background: black;
}
Вряд ли голосования - это разовая акция. Вероятно будут и другие. Единожды написанный скрипт будет проверять любые из них, с любым временем активности.
Возможно будут другие события на сайте, по которым нужно будет выполнять определенные дейстия, не только голосования. Грамотно написанный скрипт планировщика будет отлично работать с любыми задачами.
Вас смущает, что скрипт будет на каждую запланированную задачу каждую минуту лазить в базу? Ну ок, никто вас не заставляет этого делать. Кэшируйте результаты запроса на час (два, три, день... минимальное время активности голосования), и тогда в базу будете лазить только за новыми голосованиями.
Я всего лишь кратко предложил общую идею, без деталей реализации, а вы сразу начинаете ярлыки навешивать. Тейлор запилил в ларавел планировщик, и никто не говорит, что он ужасен. Весьма удобная штука. Универсальная и гибкая.