试图通过一些验证来检查给定的日期是否是本月的第一个星期一,如果是,则做某事,如果不做其他事情。到目前为止,我已经想出了这个来检查给定日期的星期几,但不知道如何检查它是否是本月的第一个星期一,最好我想让它成为一个函数。
$first_day_of_week = date('l', strtotime('9/2/2013'));
// returns Monday
试试这个:
$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.
}
我知道,这似乎有点愚蠢,但它允许您在'9/2/2013'
需要时用变量替换。
您可以使用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));
看到它工作。