1

現在、私はすべての PHP UNIX タイムスタンプを2k38 issueを超えて動作するように変換しています。

setcookie()の 有効期限パラメーターが UNIX タイムスタンプを使用していることに気付きました。おそらくDateTimeクラスを使用して、代替方法で有効期限を設定する方法はありますか?

有効期限に関する PHP ドキュメントから:

注: 日付形式 Wdy、DD-Mon-YYYY HH:MM:SS GMT とは対照的に、expire パラメータが Unix タイムスタンプを使用していることに気付くかもしれません。これは、PHP が内部でこの変換を行うためです。

4

1 に答える 1

6

関数シグネチャは変更できません。少なくとも、変な 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

...そして、ブラウザが日付を処理できることを願っています:

expiry-time がユーザー エージェントが表現できる最後の日付より後の場合、ユーザー エージェントは expiry-time を表現可能な最後の日付に置き換えることができます (MAY)。

seecookie()または、とにかく使用することもできます。私の知る限り、これは一部の 32 ビット バージョンの PHP でのみ問題になります。

于 2016-04-10T14:06:02.340 に答える