javascript - 根据一天中的时间更改图像

标签 javascript html date datetime

我正在开发一个网站,其中包含许多根据一天中的时间而变化的元素。我希望根据一天中的时间更改图像,一张图像代表白天,一张图像代表夜间,因此:

日间图像 = 8:30–00:00

夜间图像 = 00:00–8:30

我在 Stackoverflow 上看到了这个示例,但我不确定这是否准确于我的浏览器时间(图像更改应该基于我的时间而不是用户)。

这是示例:

$( document ).ready(function() {  
    SetImage();
    window.setInterval(SetImage,1000);
});

function SetImage(){     
    var nowdate = new Date() ;
    
    var waketime = new Date();     
    waketime.setHours(6);
    waketime.setMinutes(30);
    
    var bedtime = new Date();     
    bedtime.setHours(18);
    bedtime.setMinutes(30);
    
    if(waketime < nowdate  && nowdate < bedtime){
         $('#day').show();
         $('#night').hide();
    }else{
         $('#night').show();
         $('#day').hide();
    }
}
<img id="night" src="http://1.bp.blogspot.com/_7-b4ZWNPaD8/TThuPK0cvUI/AAAAAAAAAAQ/jCqRshKkJd4/s1600/night-scene.jpg">
<img id="day" src="http://media1.santabanta.com/full1/Events/Independence%20Day/independence-day-67a.jpg">

有什么想法吗?任何帮助都会很棒。谢谢:-)

最佳答案

服务器端检查时间,并根据时间向正文添加夜晚或白天(作为类或数据属性)

此外,如果用户不重新加载,您可以运行脚本并更新它。

window.setInterval(SetImage,5000);   /* set this to at least 10 min */

function SetImage(){     
    var nowdate = new Date();    
    var waketime = new Date();     
    waketime.setHours(6);
    waketime.setMinutes(30);
    
    var bedtime = new Date();     
    bedtime.setHours(18);
    bedtime.setMinutes(30);
    
    if(waketime < nowdate  && nowdate < bedtime) {
         document.body.setAttribute('data-daytime','');
    }else{
         document.body.setAttribute('data-nighttime','');
    }
}
.toggletime {
  padding: 10px;
  background: #eee;
  color: #333;
}
body[data-nighttime] .toggletime {
  padding: 10px;
  background: #333;
  color: #eee;
}
<body data-daytime>
  <div class="toggletime">
    Hey there
  </div>
</body>

关于javascript - 根据一天中的时间更改图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36210209/

相关文章:

javascript - 如何在 R Shiny 中为 DT 使用 localStorage 选项?

html - 具有动态右侧内容的 100% 高度左侧边栏 - Bootstrap + Wordpress

java - 将长字符串解析为 LocalDate 变量

javascript - 如何将 IST 时区对象添加到 Moment.js

javascript - 两个anchor.hash属性不同,但js不同意

javascript - 如何从函数中的回调返回值?

javascript - Codility CyclicRotation Javascript 解决方案 : Empty array returns an error

javascript - 创建文本节点并添加 CSS

javascript - 创建一个包含表单值历史记录的数组

javascript - 如何在js中保持样本时间与系统时间一致?