客户希望每周一自动生成简报,显示即将到来的一周的时间表。这很简单:
if(date('N', $time)==1) { /* Stuff */ }
将它附加到每晚运行的crontab上,我很高兴。
但是,如果在该月的最后一周生成时事通讯,则需要显示即将到来的月份的时间表。我如何确定何时需要生成月度计划?
答案 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'));