Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Оптимизация кода и аналог на JS

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Скидка исходя из количество дней
Noobster
Отправлено: 20 Июля, 2022 - 17:16:45
Post Id



Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Авг. 2018  


Помог: 0 раз(а)




Добрый день,
Имеется массив, где идёт перечисление диапазон дней, и цена скидки.
Надо на каждый день отнимать цену скидки.
Код работает, но думаю требуется оптимизация, подскажите как лучше.

И ещё как аналогично написать на JS.
Спасибо Ниндзя

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $start_day = new Carbon("07/27/2022 03:40 pm");
  3. $end_day = new Carbon("07/30/2022 03:40 pm");
  4. $price = "45.25";
  5.  
  6. // Надо подправить для тестирования
  7. $discounts = "[0] => Array ( [0] => 1-2 [1] => 0 [2] => 10 ) [5] => Array ( [0] => 3-7 [1] => 5 [2] => 15 ) [10] => Array ( [0] => 8-12 [1] => 10 [2] => 20 )";
  8.  
  9. $total_days = $start_day->diffInDays($end_day);
  10. $total_price = $price*$total_days;
  11.  
  12. $day = $start_day->diffInDays($end_day);
  13. foreach ($discounts as $value) {
  14.         $day_value = explode("-", $value[0]);
  15.         $min_day = $day_value[0];
  16.         $max_day = $day_value[1];
  17.         if (in_array($day, range($min_day,$max_day))) {
  18.                 $price_discount = $value[1] * $day;
  19.                 $total_price -= $price_discount;
  20.                 break;
  21.         }
  22. }
  23.  
  24. echo $total_price;
  25. ?>

(Отредактировано автором: 20 Июля, 2022 - 17:18:24)

 
 Top
Noobster
Отправлено: 22 Августа, 2022 - 14:02:21
Post Id



Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Авг. 2018  


Помог: 0 раз(а)




Дайте нуббу ответ, пробую, но чтото с багами

те как определить в какой диапазон попадает количество дней Растерялся
 
 Top
Vladimir Kheifets
Отправлено: 23 Августа, 2022 - 13:31:15
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Noobster пишет:
Дайте нуббу ответ, пробую, но чтото с багами

те как определить в какой диапазон попадает количество дней Растерялся


Добрый день!
РНР без Carbon
Спойлер (Отобразить)
JS (ECMAScript)
Спойлер (Отобразить)
Удачи!

(Отредактировано автором: 23 Августа, 2022 - 14:21:46)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB