我正在创建一个用户问候消息,该消息会根据时间向用户发送“早上好”,“下午好”和“晚上好”之类的消息。更改,并在消息更改的日期时间再次显示该消息。
例如,当您第一次在早上打开网站时,它将仅向您发送一次“早安”消息,然后每次刷新页面时才显示此问候消息,直到一天的下一部分开始,例如下午或晚上,反之亦然。
这可能吗?
最佳答案
是的,您可以使用简单的LocalStorage(用于维护最后一条消息显示的历史记录)和Java中的日期时间比较来做到这一点
<script>
setInterval(greet , 1000*60);
function greet(){
var date = new Date();
try{
if(!localStorage.lastGreeted || !localStorage.lastGreetedPeriod)
greetWithMessage(date);
else if(getDate(localStorage.lastGreeted)!=getDate(date))
greetWithMessage(date);
else if(divideDayTime(date.getHours())!=localStorage.lastGreetedPeriod)
greetWithMessage(date);
}
catch(err){
greetWithMessage(date);
}
}
function getDate(obj){
if(!(obj instanceof Date) )
obj = new Date(obj);
return obj.getDate()+'-'+(1+obj.getMonth())+'-'+obj.getFullYear();
}
function divideDayTime(hours){
//Update Message and It's Period Here
if(hours<12)
return 'MORNING';
else if(hours>=12 && hours <=16)
return 'AFTERNOON';
else if(hours>16 && hours<=20)
return "EVENING";
else
return "NIGHT";
}
function greetWithMessage(d){
localStorage.lastGreeted=d;
var message = localStorage.lastGreetedPeriod=divideDayTime(d.getHours());
alert("Good "+ message);
}
</script>