我想使用此数据包在Web应用程序中处理Cookie
https://github.com/js-cookie/js-cookie
在我的Web应用程序中,我的任务是在用户执行某些操作时延长cookie的过期时间(15分钟)。 要延长过期时间,请使用以下指南:
我的问题是,使用getTime()函数(始终以UTC返回时间)的这段代码是否与使用其他时区的用户正确工作?
例如,如果用户具有CST时区(与UTC相差6个小时),则cookie是否正确过期(15分钟)或不正确(6小时15分钟)? 如果不是,您是否有任何想法来改进此代码?谢谢。
答案 0 :(得分:2)
getTime()始终使用UTC进行时间表示。例如,一个时区中的客户端浏览器getTime()将与其他时区中的客户端浏览器相同。
时间戳始终采用UTC。
例如,如果用户具有CST时区(与世界标准时间(UTC)相差6个小时),则cookie是否正确过期(15分钟)或不正确(6小时15分钟)?
否,因为时间是CST而不是UTC,所以“ getTime()上面的引号也将与任何其他时区的客户端浏览器相同”。
答案 1 :(得分:1)
此处的时区没有问题。示例代码可以正常工作。
如果要模拟其他时区发生的情况,只需更改系统的时区设置。在Windows中,右键单击时钟,然后选择“调整日期/时间”。
如果您在响应中查看set-cookie标头,则会在UTC中看到expires属性。浏览器非常清楚如何处理UTC。只要正确设置了自己的时钟和时区,一切都会按预期进行。这是非常基本的东西。这里没有问题!
Javascript dates have no notion of timezone,因此javascript中没有UTC Date对象。当您调用getTime()时,将显示Date对象的全部内容-这只是一个数字,因此getTime()也没有时区的概念。 new Date()
为您提供代表当前时刻的数字。再一次,没有时区的概念。到处都做同样的事情。