[英]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.