PHP:发现一天是否存在于该月的最后一周

时间:2011-08-01 01:46:18

标签: php datetime

客户希望每周一自动生成简报,显示即将到来的一周的时间表。这很简单:

if(date('N', $time)==1) { /* Stuff */ }

将它附加到每晚运行的crontab上,我很高兴。

但是,如果在该月的最后一周生成时事通讯,则需要显示即将到来的月份的时间表。我如何确定何时需要生成月度计划?

5 个答案:

答案 0 :(得分:5)

date('m') == date('m', strtotime('+1 week'))

如果报告运行之日起一周的月份与当前月份不同,请显示报告!

答案 1 :(得分:0)

if(date('n', $time) !== date('n', $time+518400)){
    // Six days from now it will be a new month
}

答案 2 :(得分:0)

一种方法可能是看下周一是否在另一个月。

if (date('n', $time) != date('n', $time + 7*24*60*60)) { ... }

你可能会更有魅力,但这似乎与你现有的代码一致。

答案 3 :(得分:0)

您可以使用t日期格式参数查看特定月份的天数。尝试

if ((date('t', $time) - date('j', $time)) > 6) {
    // in the last week of the month
}

答案 4 :(得分:0)

我知道这个问题已得到解答,但这会有所帮助:

PHP的内置时间功能使这一点变得更加简单。 http://php.net/manual/en/function.strtotime.php

// Get first Friday of next month.
$timestamp = strtotime('first fri of next month');

// Get second to last Friday of the current month.
$timestamp = strtotime('last fri of this month -7 days');

// Format a timestamp as a human-meaningful string.
$formattedDate = date('F j, Y', strtotime('first wed of last month'));