Проблема в том, как подчеркивали другие, что сравнения не то, что вы хотите. Кроме того, отсутствует половина logi c: когда вы рекомендуете что-то в одном временном интервале, вам придется удалить его в другом, если вы не sh, чтобы показать это.
Это - это тестируемое решение с более простым для понимания кодом.
Вы можете проверить это, заменив new Date.getHours()
фактическими числами, чтобы увидеть, как оно изменится.
function promote(element) {
element.classList.remove('notrecommend');
element.classList.add('recommendedspot');
}
function demote(element) {
element.classList.remove('recommendedspot');
element.classList.add('notrecommend');
}
function processElements(time) {
var southSpot = document.getElementById("spotsouth")
var northSpot = document.getElementById("spotnorth");
var inMorning = time >= 6 && time < 9;
var inWorkTime = time >= 9 && time < 17;
var inEvening = time >= 17 && time <= 21
if (inWorkTime) {
promote(southSpot);
demote(northSpot);
} else if (inMorning || inEvening) {
promote(northSpot);
demote(southSpot);
} else {
// this part of the code depends on what would you like to happen outside the
// known time slots (this one hides both elements, but any other combination
// is possible)
demote(southSpot);
demote(northSpot);
}
}
processElements(new Date().getHours());
// test with actual numbers: 1, 6, 8, 9, 12, 17, 19, 21 for example to see how it changes:
// processElements(1);
.notrecommended {
display: none;
}
.recommendedspot {
display: inline;
margin-left: 15px;
max-width: 50px;
}
<img id="spotsouth" src="site-logo.png" alt="spot south" class="notrecommended">
<img id="spotnorth" src="site-logo.png" alt="spot north" class="notrecommended">