尝试传递一些验证以检查给定日期是否是该月的第一个星期一,如果是,那么如果不执行其他操作则执行某些操作。到目前为止,我已经想出了这个来检查一周的日期,但是不知道如何检查它是否是该月的第一个星期一,最好是我希望这个功能。
$first_day_of_week = date('l', strtotime('9/2/2013'));
// returns Monday
答案 0 :(得分:3)
尝试一下:
$first_day_of_week = date('l', strtotime('9/2/2013'));
$date = intval(date('j', strtotime('9/2/2013')));
if ($date <= 7 && $first_day_of_week == 'Monday') {
// It's the first Monday of the month.
}
我知道,似乎有点像asinine,但如果需要,它允许你用变量替换'9/2/2013'
。
答案 1 :(得分:1)
您可以使用DateTime类轻松完成此操作: -
/**
* Check if a given date is the first Monday of the month
*
* @param \DateTime $date
* @return bool
*/
function isFirstMondayOfMonth(\DateTime $date)
{
return (int)$date->format('d') <= 7 && $date->format('l') === 'Monday';
}
$day = new \DateTime('2013/9/2');
var_dump(isFirstMondayOfMonth($day));
$day = new \DateTime('2013/10/2');
var_dump(isFirstMondayOfMonth($day));
见working。