2012-04-19 11 views
8

PHP setcookie関数を使用して1時間後に有効期限が切れるcookieを設定する必要があります。私のサーバーのタイムゾーンはGMTに設定されています。クライアントのブラウザのタイムゾーンを超えて動作するように、Cookieの有効期限をどのように設定する必要がありますか?クッキーのタイムゾーンはクライアントの側にありますか?

+1

@DonCallisto彼は彼の質問のほとんどで必要な答えを得ていないかもしれません。 – noob

+0

ありがとう、両方のコメントは便利です。確かに私は必要な答えを得ていないが、それについて覚えておくとよい。 – Karol

+1

['$ cookie-> setExpiryTime($ expiryTime)'](https://github.com/delight-im/PHP-Cookie/blob/004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php#L80)または['$ [このスタンドアロンライブラリ]にあるように、cookie-> setMaxAge($ maxAge) '](https://github.com/delight-im/PHP-Cookie/blob/004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php#L92) https://github.com/delight-im/PHP-Cookie)。 – caw

答えて

7

変換のためのgmdateを使用することができ、日時の正しい形式をretriveの罰金であるように思わstrtotimeまたgetTimeZonesetTimeZone を見てみましょうhere

と試みることができますクライアントの時間が何であるかは関係ありません。 PHPはunixのタイムコードに基づいて有効期限を設定します。その時間内の変化はサーバーに存在する必要があります。

の有効期限が切れる:

時間クッキーの有効期限が切れるここ


は、いったんsetcookie用PHP manualからの抜粋()です。これは、Unixタイムスタンプなので、エポックからの秒数です。つまり、 は、time()関数と秒数( )を設定してこれを有効期限切れにすることをお勧めします。あるいは、mktime()を使うかもしれません。 time()+ 60 * 60 * 24 * 30 は、30日後に有効期限が切れるように設定します。 0に設定するか省略すると、ブラウザの が終了すると、セッション終了時に のCookieが期限切れになります。

0

あなたは、あなたが、私はできる限り近く、それは

0

あなたがset cookieを使用するとします。

私が間違っているかもしれないが、私は思う:

あなたはUnixタイムスタンプとして有効期限切れパラメータを提供し、あなたは「時間内」としてタイムスタンプを計算するので、あなたはクッキーが1時間で期限切れにしたいです。 Unixのタイムスタンプが曖昧でないので、タイムゾーンは気にしないでください。

そしてブラウザのタスクはクッパ設定(ロケール、言語など)に基づいて、日付にUnixタイムスタンプを変換することである

5

PHPのますsetcookie()関数は、Unixタイムスタンプ値に対応する整数を受け付けます。あなたのクッキーが生きる時間が1時間になる場合は、その値にtime()+ 3600を使用するだけです。 PHPは "expires = Fri、3 Aug 2001 20:47:11 UTC"のような有効期限を持つクッキーを作成します。それはUTC(GMT)なので、クライアントブラウザのタイムゾーンを気にする必要はありません。

関連する問題