PHPのsetcookie関数を使用して1時間後に期限切れになるCookieを設定する必要があります。サーバーのタイムゾーンがGMTに設定されています。異なるクライアントのブラウザのタイムゾーンで機能するようにするには、Cookieの有効期限をどのように設定する必要がありますか?
4 に答える
私が知る限り、クライアントの時間は関係ありません。PHPは、UNIXタイムコードに基づいて有効期限を設定します。その時間の変動はサーバーに存在する必要があります。
setcookie()のPHPマニュアルからの抜粋は次のとおりです。
期限切れ:
Cookieの有効期限が切れる時間。これはUnixタイムスタンプであるため、エポックからの秒数です。つまり、time()関数に、有効期限が切れるまでの秒数を加えて設定する可能性があります。または、mktime()を使用することもできます。time()+ 60 * 60 * 24 * 30は、Cookieが30日で期限切れになるように設定します。0に設定するか省略した場合、Cookieはセッションの終了時(ブラウザが閉じたとき)に期限切れになります。
PHPのsetcookie()関数は、Unixタイムスタンプ値に対応する整数を受け入れます。Cookieの存続時間が1時間である必要がある場合は、その値にtime()+3600を使用できます。次に、PHPは、「expires = Fri、2001年8月3日20:47:11UTC」のような有効期限を持つCookieを作成します。UTC(GMT)であるため、クライアントブラウザのタイムゾーンについて心配する必要はありません。
setcookieを使用するとします。
私は間違っているかもしれませんが、私は思います:
期限切れパラメータをUnixタイムスタンプとして指定し、タイムスタンプを「1時間以内」として計算するため、Cookieを1時間以内に期限切れにする必要があります。したがって、UNIXタイムスタンプは明確であるため、タイムゾーンについては気にしないでください。
次に、ブラウザのタスクは、クッパの設定(ロケール、言語など)に基づいてUNIXタイムスタンプを日付に変換することです。