Cookie,服务器时间与客户端时间

本文关键字:时间 客户端 服务器 Cookie | 更新日期: 2024-10-23 19:46:29

这里有一个非常奇怪的案例

A:

  1. 我使用System.DateTime.Now.AddSeconds设置cookie的到期日期(30)
  2. 客户端PC日期时间比服务器日期时间快1小时

场景1:

  • 使用googlechrome尝试网页
  • 网页占用客户日期时间来设置cookie的到期日期
  • 如果客户端日期时间比服务器日期时间慢也没问题

场景2:

  • 使用internet explorer尝试该网页
  • 网页需要SERVER日期时间来设置cookie的过期日期,但由于客户端日期时间比服务器日期时间快1小时,cookie立即过期
  • 如果将客户端日期时间更改为与服务器日期时间相同或慢于服务器日期时间,则问题已解决

B:

  1. 通过使用javascript和ASP:hiddenField获取客户端日期时间来设置cookie
  2. 客户端PC日期时间比服务器日期时间快1小时

场景1:

  • 列出项目
  • 使用googlechrome尝试网页
  • 没问题
  • 但是如果客户端日期时间比服务器日期时间慢,cookie会立即过期

场景2:

  • 使用internet explorer尝试该网页
  • 无论客户端日期时间比服务器日期时间快还是慢,都没问题

有什么建议可以解决这个问题吗?在过去的两周里一直困扰着我:(

p/S:服务器时间是+8 GMT。我的客户端也是+8 GMT,但快了1小时

Cookie,服务器时间与客户端时间

请不要使用客户端日期时间,这可能是错误的。在您的情况下,最好使用UTC日期时间,而不是客户端或服务器的日期时间,因为UTC时间在任何地方都是相同的。

使用System.DateTime.UTCNow.AddSeconds(30)

在javascript中,如果需要,使用UTC日期,如:

var isoDate = new Date('yourdatehere').toISOString();