Показать сообщение отдельно
  #2 (permalink)  
Старый 14.02.2020, 07:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А зачем, если replace(/\D+/g,"") на все сезоны?

Вообще, сезон, это квартал, всего их 4, а значит для "компьютерного зрения" удобнее использовать число как идентификатор сезона, в отличие от "зрения человека". Сначала нужно определить время года, вот так:

let season = Math.floor((new Date().getMonth()+1) / 3) % 4;


В зависимости от сезона будет возвращено от 0 = зима до 3 = осень, соответственно. Можно определить соответствие индексных значений времен года с текстовыми через массив. А вот что тут изменяется не понятно.

Вообще не понятно с чего вдруг такое понадобилось. Цены хранят в базе, базу же обслуживает так же язык, который может извлечь сразу, по запросу, цену соответствующего сезона. Если выгребать из базы все кучей, то это плохо. А еще более рационально, это, не должно быть никаких pricev, pricel и т.д. Цена она и в Африке цена, одна и единственная, которая может понижаться/повышаться в зависимости от сезона, иметь скидки по акциям/условиям и т.д., и т.п. Сервер и отдает клиенту все в этой базовой цене, плюс массив поправок цены по сезону:

let price_seasons = [1.5, 1.0, 0.8, 1.2];


Клиент извлекает поправку price_seasons[season], на которую изменяет значения полей. Это куда сподручнее для него, чем маяться с replace. Если сервер знает часовой пояс клиента или разница во времени в несколько часов не важна, то получить цены сезона можно сразу из базы.

А если это не так, база имеет избыточное, лишнее, то можно сказать с уверенностью на все 100% - чтобы не делалось, дальше будет все хуже и хуже, затраты на обработку данных будут все возрастать и возрастать, и клиента будут напрягать пустой и никчемной работой.
Ответить с цитированием