如果cookie中的日期是昨天或更远

时间:2016-07-13 15:29:21

标签: javascript

我有一个Cookie,用于设置之前访问我网站的日期。它按以下格式保留所有访问日期30天:

  

2016年7月13日| 2016年7月10日| 2016年6月28日

我需要检查此Cookie中的日期是否超过一天。例如:

  • 今天是第13次
  • Cookie显示上次访问第13次
  • 因此我想要一个false结果。 Cookie包含今天的日期

可是:

  • 今天是第13次
  • Cookie中的最后日期是第12天(例如2016-07-12
  • Cookie至少包含昨天的日期。因此true结果已发送

我想尽可能简洁地做到这一点。

我目前有以下内容(还不是非常简洁):

var cookiePreviousSiteVisit = '2016-07-10|2016-07-02|2016-06-28'.split('|');

var todaysDate = new Date();
var prevDate = new Date(previousSiteVisit[0]);

return todaysDate > prevDate;

我的问题是,如果今天的日期也在那里,它会返回true。我需要从计算中扣除1天的折扣。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

在测试前添加todaysDate.setUTCHours(0,0,0,0);,以便两个日期具有相同的时间,或使用getDate()getMonth()getFullYear()进行比较。

即使prevDate引用同一天,todaysDate小于todaysDate的原因是因为Dates也包含时间。 new Date()将设置为已调用prevDate的时间。但是,function notVisitedToday(){ var previousSiteVisits = '2016-07-13|2016-07-02|2016-06-28'.split('|'); var todaysDate = new Date(); var prevDate = new Date(previousSiteVisits[0]); todaysDate.setUTCHours(0,0,0,0); return todaysDate > prevDate; } console.log(notVisitedToday());是从不包含任何时间信息的字符串中解析的。因此,它的时间是午夜(0小时,0分钟,0秒和0毫秒)。



Dim order = New Integer() {2,3,1}

Dim literalSort = l.OrderBy(Function(i) If(order.Contains(i), 0, 1)) _ 
                   .ThenBy(Function(i) Array.IndexOf(order, i)) _
                   .ThenBy(Function(i) i)  ' sort rest numerically