[英]How to detect app launched first time in a day
我有应用程序,只要它在一天中的第一时间启动,就应该执行一些逻辑。 我已经在Google中签到了,但是我没有得到任何好的工作逻辑,如果有人知道这一点,请建议我。
到目前为止,我已经尝试过使用此代码
var firstTime = new Date().getTime();
if(window.localStorage.getItem('firstTime') == null){
window.localStorage.setItem('firstTime', firstTime);
}else{
var secondTime = new Date().getTime();
var storedTime = window.localStorage.getItem('firstTime');
if(secondTime > storedTime){
alert("Second time");
}else{
alert("First time");
}
}
注意在:
var firstTime = new Date().getTime();
if(window.localStorage.getItem('firstTime') == null){
window.localStorage.setItem('firstTime', firstTime);
您存储的数字代表当前时刻(以毫秒为单位)。 如果要开始新的一天,请先将小时数设置为零:
var firstTime = new Date().setHours(0,0,0,0);
现在执行逻辑,存储时间值就可以了:
if (window.localStorage.getItem('firstTime') == null){
window.localStorage.setItem('firstTime', firstTime);
在其他部分,您需要与一天中的另一个时间值进行比较,就像上面这样:
} else {
var storedTime = window.localStorage.getItem('firstTime');
// Get a new date, zero it as above and see if its the same time
// If not, it must be a different day
var secondTime = new Date().setHours(0,0,0,0)
if (secondTime != +firstTime) {
alert("Second time is a different day");
} else {
alert("First time is the same day");
}
}
而不是存储new Date().getTime();
,存储new Date().getDate();
并进行比较。 如果当前日期大于存储的日期,则该应用程序在该天首次打开。 因此,您存储此日期。 而且,当下次打开应用程序时,当前日期不会更长(它将是相等的),因此您会了解到这不是第一次。
注: getDate()
只会给你的日期的日部分。 例如,对于今天的日期(即10/03/2016),它将为您提供“ 10”。 因此,请同时加上几个月,以使您的逻辑万无一失。
这将像一种魅力一样工作,感谢@camelcasecoder
var firstTime = new Date().setHours(0,0,0,0);
alert("firstTime "+firstTime);
if (window.localStorage.getItem('firstLaunch') == null){
window.localStorage.setItem('firstLaunch', firstTime);
alert("At first time");
} else {
var storedTime = window.localStorage.getItem('firstLaunch');
// Get a new date, zero it as above and see if its the same time
// If not, it must be a different day
var secondTime = new Date().setHours(0,0,0,0)
alert("secondTime "+secondTime);
if (secondTime > storedTime) {
alert("First time in the day");
window.localStorage.setItem('firstLaunch', secondTime);
} else {
alert("Second time in the same day");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.