Я создаю сайт, который определяет значение массива в зависимости от времени. Я написал этот ужасный (функциональный) script, и мне интересно, могу ли я сделать его более кратким. Я начал с оператора case/switch, но не смог получить несколько условных выражений, работающих с ним. Здесь грязное дело:
if ($now < november 18th) {
$array_to_use = $home;
}
elseif (november 18th < $now && $now < november 21st ) {
$array_to_use = $driving;
}
elseif (november 21st < $now && $now < november 22nd) {
$array_to_use = $flying;
}
...
...
...
elseif (february 1st < $now) {
$array_to_use = $arrived;
}
else {
$array_to_use = $default;
}
Расписание на самом деле сложнее и содержит 13 elseif
операторов. Может кто-то, пожалуйста, подтвердите, что у меня только что был блок кодера и что есть лучший способ сделать это?
EDIT: Я изменил временные метки Unix на грубые реальные времена, чтобы было легче понять, что я делаю (надеюсь)
РЕДАКТИРОВАТЬ 2: Пожалуйста, простите, что в настоящее время неработающие часы Javascript, но это сайт, над которым я работаю:
Каждый массив основан на моем местоположении, и есть 15 "они в настоящее время" основаны на времени. Это небольшая проблемная область с известными временами начала и окончания, поэтому гибкость не является ключевой, просто получая ее все написанное. Вы можете видеть, как время непрерывное, и только один массив строк должен быть выбран за раз.