куки — PHP: setcookie () истекает после 2038 года

В настоящее время я конвертирую все свои временные метки в PHP Unix, чтобы работать дальше 2к38 выпуск.

Я заметил, что SetCookie () годен до Параметр использует метку времени Unix. Есть ли способ установить дату истечения срока с помощью альтернативного метода, может быть, используя класс DateTime как-то?

Из документа PHP о дате истечения срока действия:

Примечание: вы можете заметить, что параметр expire принимает метку времени Unix,
в отличие от формата даты Wdy, DD-Mon-YYYY HH: MM: SS GMT, это
потому что PHP делает это преобразование внутри.

1

Решение

Вы не можете изменить сигнатуру функции. Ну, по крайней мере, без возни со странными расширениями PHP. Но так как спецификация печенья вообще не использует метки времени Unix, вы можете просто написать свою собственную функцию и вызвать header() вручную:

Set-Cookie: lang=en-US; Expires=Wed, 09 Jun 2099 10:18:14 GMT
Set-Cookie: lang=en-US; Max-Age=8640000

… и надеюсь, что браузеры смогут обработать дату:

Если время истечения позже, чем в последний день, пользовательский агент может
представляете, пользовательский агент МОЖЕТ заменить время истечения с последним
представительная дата.

Или вы можете просто использовать seecookie() тем не мение. Насколько я знаю, это будет проблемой только в некоторых 32-битных версиях PHP.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]