PHP:setcookie()将在2038年之后到期

evi*_*iko 1 php cookies unix-timestamp year2038

目前我正在将我所有的PHP unix时间戳转换为2k38以上的问题.

我注意到setcookie() expire date参数使用unix时间戳.有没有办法用替代方法设置过期日期,也许以某种方式使用DateTime类?

从有关过期日期的PHP文档:

注意:您可能会注意到expire参数采用Unix时间戳,而不是日期格式Wdy,DD-Mon-YYYY HH:MM:SS GMT,这是因为PHP在内部执行此转换.

Álv*_*lez 5

您无法更改功能签名.好吧,至少没有摆弄奇怪的PHP扩展.但由于cookie规范根本不使用Unix时间戳,您只需编写自己的函数并header()手动调用:

Set-Cookie: lang=en-US; Expires=Wed, 09 Jun 2099 10:18:14 GMT
Set-Cookie: lang=en-US; Max-Age=8640000
Run Code Online (Sandbox Code Playgroud)

...并希望浏览器能够处理日期:

如果到期时间晚于用户代理可以表示的最后日期,则用户代理可以将到期时间替换为最后可表示的日期.

或者你可以简单地使用seecookie().据我所知,它只是一些32位版本的PHP中的一个问题.