Set the theme of a website based on the time of the day (no external library)

Set the theme of a website based on the time of the day (no external library)

In this blog post, I will show you how to use JavaScript, and CSS to set the theme of your website based on the time of day. This can be a useful feature if you want to create a website that automatically switches between a light and dark theme based on the time of day. By the end of this post, you will have a website that automatically changes its appearance based on the time of day, creating a more dynamic and engaging user experience.

Before we move on, remember you can implement your websites or landing pages with or without coding on DoTenX for free. Make sure to check it out and even nominate your work to be showcased there as well.


First, we will create two CSS stylesheets, one for the light theme and one for the dark theme. These stylesheets will define the colours and other styles that will be used on the website.

/* light.css */

body {
  background-color: white;
  color: black;
}

/* dark.css */

body {
  background-color: black;
  color: white;
}

Next, we will use JavaScript to detect the current time of day and apply the appropriate stylesheet to the element of the HTML page.

<!DOCTYPE html>
<html>
<head>
  <title>Time-Based Theme Example</title>

  <script>
    // Get the current time
    var date = new Date();
    var hour = date.getHours();

    // Apply the light or dark stylesheet based on the time of day
    if (hour >= 6 && hour < 18) {
      // If the time is between 6am and 6pm, use the light theme
      var link = document.createElement("link");
      link.setAttribute("rel", "stylesheet");
      link.setAttribute("type", "text/css");
      link.setAttribute("href", "light.css");
      document.head.appendChild(link);
    } else {
      // Otherwise, use the dark theme
      var link = document.createElement("link");
      link.setAttribute("rel", "stylesheet");
      link.setAttribute("type", "text/css");
      link.setAttribute("href", "dark.css");
      document.head.appendChild(link);
    }
  </script>
</head>
<body>
  <h1>Time-Based Theme Example</h1>
  <p>This page demonstrates how to use JavaScript, HTML, and CSS to set the theme of a website based on the time of day.</p>
</body>
</html>

In this example, we use the Date object in JavaScript to get the current time, and then we use an if statement to determine whether the time is between 6am and 6pm. If it is, we apply the light theme stylesheet, and if it is not, we apply the dark theme stylesheet.

You can adjust the times and styles to suit your needs, and you can also use additional stylesheets and JavaScript code to create more complex and sophisticated themes for your website.