0

试图通过一些验证来检查给定的日期是否是本月的第一个星期一,如果是,则做某事,如果不做其他事情。到目前为止,我已经想出了这个来检查给定日期的星期几,但不知道如何检查它是否是本月的第一个星期一,最好我想让它成为一个函数。

$first_day_of_week = date('l', strtotime('9/2/2013'));
// returns Monday
4

2 回答 2

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.
}

我知道,这似乎有点愚蠢,但它允许您在'9/2/2013'需要时用变量替换。

于 2013-09-18T15:56:54.843 回答
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));

看到它工作

于 2013-09-20T20:21:32.857 回答