diff options
author | nanxiaobei <nanxiaobei@gmail.com> | 2019-10-16 22:02:35 +0300 |
---|---|---|
committer | nanxiaobei <nanxiaobei@gmail.com> | 2019-10-16 22:02:35 +0300 |
commit | c163b43b9af8c65f0d40e000635823cadb2484c4 (patch) | |
tree | 9288fab803f8f7adab1d7a368112048b43f3f2cb /layouts | |
parent | 16d7fd6b21c35d862705fe1ec06f0a7f5237585b (diff) |
Fix Dark Mode logic
Diffstat (limited to 'layouts')
-rw-r--r-- | layouts/partials/header.html | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 4693333..f60b9b7 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -39,17 +39,21 @@ <!-- Script --> <script> function setTheme() { - const prev = Number(localStorage.getItem('time')); - const now = Date.now(); + const time = new Date(); + + const prev = localStorage.getItem('date'); + const date = String(time.getMonth()) + '.' + String(time.getDate()); + + const now = time.getTime(); let sunrise; let sunset; function setBodyClass() { if (now > sunrise && now < sunset) return; - document.body.classList.add('sunset'); + document.body.classList.add('dark'); } - if (now - prev > 24 * 60 * 60 * 10000) { + if (date !== prev) { fetch('https://api.ipgeolocation.io/astronomy?apiKey=5ed37d85103e4defa5df4c5298ed5215') .then(res => res.json()) .then(data => { @@ -61,13 +65,13 @@ sunset = [19, 0]; }) .finally(() => { - sunrise = new Date().setHours(sunrise[0], sunrise[1], 0); - sunset = new Date().setHours(sunset[0], sunset[1], 0); + sunrise = time.setHours(sunrise[0], sunrise[1], 0); + sunset = time.setHours(sunset[0], sunset[1], 0); setBodyClass(); localStorage.setItem('sunrise', sunrise); localStorage.setItem('sunset', sunset); }); - localStorage.setItem('time', now); + localStorage.setItem('date', date); } else { sunrise = Number(localStorage.getItem('sunrise')); sunset = Number(localStorage.getItem('sunset')); |