将Web缓存设置为每月为所有用户过期

时间:2011-11-28 07:42:43

标签: php caching header

目前我们的网络服务有一个月的开发周期。是否可以设置标题,以便缓存将在每个月的第1天到期? 我知道我们可以在每次更新时将截止日期设置为下个月的第1个月,但我想要一个更灵活的解决方案。 简而言之,我能以某种方式做到这一点吗?

header("Expires: 1st/month 05:00:00 GMT"); // Expires the 1st of every month for everybody

1 个答案:

答案 0 :(得分:2)

使用this other StackOverflow question中的代码获取下个月第一天的时间戳:

$curMonth = date('n');
$curYear  = date('Y');

if ($curMonth == 12)
    $firstDayNextMonth = mktime(0, 0, 0, 0, 0, $curYear+1);
else
    $firstDayNextMonth = mktime(0, 0, 0, $curMonth+1, 1);

然后,将该时间戳与date()一起使用,以HTTP Expires标头所需的格式生成日期:

header('Expires: ' . date('D, d M Y', $firstDayNextMonth) . ' 05:00:00 GMT');