Javascript 如何检测一天内首次启动的应用程序

Javascript 如何检测一天内首次启动的应用程序,javascript,android,cordova,Javascript,Android,Cordova,我有一个应用程序,当它在一天中第一次启动时,我应该执行一些逻辑。我查过谷歌,但我没有得到任何好的工作逻辑, 如果有人知道这一点,请建议我 到目前为止,我已经尝试了这个代码 var firstTime = new Date().getTime(); if(window.localStorage.getItem('firstTime') == null){ window.localStorage.setItem('firstTime', first

我有一个应用程序,当它在一天中第一次启动时,我应该执行一些逻辑。我查过谷歌,但我没有得到任何好的工作逻辑, 如果有人知道这一点,请建议我

到目前为止,我已经尝试了这个代码

       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");
            }
        }

而不是存储
newdate().getTime(),存储<代码>新日期().getDate()
并进行比较。如果当前日期大于存储的日期,则应用程序将在当天首次打开。所以你储存了这个日期。当下一次打开应用程序时,当前日期不会变大(将相等),因此您会明白这不是第一次

注意:
getDate()
只会给出日期的部分。例如,对于今天的日期,即2016年3月10日,它将给您“10”。因此,请包括几个月,以使您的逻辑简单明了。

请注意:

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部分中,您需要在一天开始时与另一个时间值进行比较,如上所示:

} 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");
  }
}

这会很有魅力, 感谢@camelcaseconder

       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"); 
            }
         } 

使用SharedReference检查应用程序是否在一天中第一次打开。@透视我正在phonegap中使用Javascript。。同样,在本地存储中,我也可以保存数据,如SharedReference。但是我们如何检查应用程序是否在一天中第一次打开。您需要存储
日期
部分,并检查当前的
日期
是否更大。你的逻辑总是说第二次,因为你是在比较时间而不是日期共享。在这件事上,参考应该对你有帮助。@camelCaseCoder听起来不错,你能给我举个例子吗?如果(第二次!=+firstTime){alert(“第二次是不同的一天”);}否则{alert(“第一次是同一天”);}这有用吗??第二次是不同的一天是同一天的第一次对吗???@Mallikarjunhamannavar我不明白混淆在哪里,这个答案中使用的
setHours()
方法可以解决您的问题。@Mallikarjunhamannavar我对评估逻辑进行了更改,请在得到同行评审后进行检查。我已检查了此代码,并更改了设备日期。。这不符合逻辑。。每一次它的第一次展示都是一样的day@MallikarjunHampannavar我的编辑被拒绝了,下面是我的建议:
if(secondTime>firstTime){alert(“当天第一次”);window.localStorage.setItem(“firstTime”,secondTime);}else{alert(“当天第二次”);}
Yep,这正是我对@RobG的答案所做的,但我的编辑被拒绝了。没问题。用
向上投票@RobG为我们指引正确方向的答案=对逻辑没有影响,显然,如果
a>b
为真,则
a!=b
也是正确的。