将所有用户的web缓存设置为每个月的同一日期过期


Set web caching to expire the same date every month for all users

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

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

使用另一个StackOverflow问题中的代码来获取下个月第一天的时间戳:

$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');