本記事では、PHPでCookieの有効期限を設定・変更する方法について解説しています。
ITエンジニア特化の転職サイト!
自社内開発求人に強い【クラウドリンク】
PHPの学習におすすめ参考書
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!
Cookieの有効期限を設定・変更
Cookieの有効期限を設定・変更するには、Expires / Max-ageに有効期限をセットします。Expires / Max-ageに有効期限をセットする方法は以下のとおりです。
<?php
setcookie('name', value, [
'expires' => time,
]);
?>
第三引数に連想配列を設定し、keyに「expires」を指定し値にはCookieの有効期限を秒単位でセットします。
実際にCookieに有効期限を持たせ、有効期限を過ぎた時にCookieが消されるかを確認してみましょう。
<?php
setcookie('COUNT', 1, [
'expires' => time() + 10,
]);
?>
有効期限10秒のCookie(COUNT)を作成しました。これをCookie情報で確認していきましょう。
まずはCOUNTという名前でCookieに登録されていることが確認出来ます。

10秒後にページをリロードすると、Cookie情報からCOUNTが削除されていることが確認出来ました。

確認する時の注意点として、Cookieをセットするコードを残した状態でリロードすると再度Cookieに登録されてしまいますので、確認する時はコードを一度削除またはコメントアウトしてからリロードしてください。
有効期限の設定値を紹介
1日有効なCookie
有効期限が1日のCookieを作成する方法は以下のとおりです。
<?php
setcookie('COUNT', 1, [
'expires' => time() + 60 * 60 * 24,
]);
?>
最初の60秒は1分を表し、それに対して60をかけることにより1時間になります。一日は24時間なのでさらに24をかけてあげることにより1日を秒数で求めることが出来ます。
1ヶ月有効なCookie
有効期限が1ヶ月のCookieを作成する方法は以下のとおりです。
<?php
setcookie('COUNT', 1, [
'expires' => time() + 60 * 60 * 24 * 30,
]);
?>
60 * 60 * 24は先ほど解説した通り、1日を表します。1ヶ月が30日と仮定した場合、その値に30をかけてあげることによって1ヶ月を秒数で求めることが出来ます。