目前我们的网络服务有一个月的开发周期。是否可以设置标题,以便缓存将在每个月的第1天到期? 我知道我们可以在每次更新时将截止日期设置为下个月的第1个月,但我想要一个更灵活的解决方案。 简而言之,我能以某种方式做到这一点吗?
header("Expires: 1st/month 05:00:00 GMT"); // Expires the 1st of every month for everybody
答案 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');