Была задача с 19:10 до 10:30 следующего дня менять на сайте цены в +10%. Задача усложнялась тем, что данные которые нужно было изменять добывались парсингом и записывались в базу данных, и выводились оттуда с определенным алгоритмом расчета. Поэтому я реализовал это так: при загрузке сайта, брались цены которые сейчас должны были отображаться, менялись и переписывались, и пользователь видел цены так, как просил об этом заказчик - плюс 10%.
Код
<!--СКРИПТ ИЗМЕНЕНИЯ ЦЕН-->
<script>
$(document).ready(function() {
console.log("СКРИПТ ИЗМЕНЕНИЯ ЦЕН");
var dt = new Date();
var hour = dt.getHours();
var minute = dt.getMinutes() ;
var seconds = dt.getSeconds();
console.log(hour);
console.log(minute);
if(hour==19 && minute>=10) {
changePrice();
};
if(hour>=20 || hour<10) {
changePrice();
};
if(hour==10 && minute<=30) {
changePrice();
};
});
function changePrice() {
console.log("Сейчас больше 19:10 и меньше 10:30 следующего дня, изменяем цены");
let pricesgrid = $('div.prices-grid');
$(pricesgrid).find('div.price-item--value').each(function () {
$(this).find('strong').each(function () {
console.log($(this).text());
if($(this).text()=='BID' || $(this).text()=='ASK' || $(this).text()=='0.00') {
console.log ("ничего не меянем");
}
else {
let sd = $(this).text().replace(/[^0-9]/gi, '');
let numbersd = +sd;
console.log(numbersd);
let newprice = numbersd+(numbersd/100);
console.log(newprice);
newprice = newprice.toFixed();
let strnewprice = 'до '+ newprice +' ₽';
console.log(strnewprice);
$(this).text(strnewprice);
}
});
});
}
</script>