SO My Custom Text For Each Few Hours With JavaScript Isn't Working

HTML

<p><span id="sunMoon"></span>, user2757975.</p>

JavaScript

var d=new Date();
var time=d.getHours();
var elem=document.getElementById('sunMoon')

if (time > 5 && time <= 12)
{
 elem.textContent = "Good Morning!";
}
if (time > 12 && time <= 18)
  {
  elem.textContent = "Good afternoon!";
  }
if (time > 18 && time <= 24)
  {
  elem.textContent = "Good evening!";
  }
if (time > 0 && time <= 5)
  {
  elem.textContent = "Have a nice night!"
  }