检查日期是否为周末 PHP

2022-08-30 07:41:00

此函数似乎只返回 false。你们中有人得到同样的东西吗?我敢肯定我忽略了一些东西,但是,新鲜的眼光和所有这些......

function isweekend($date){
    $date = strtotime($date);
    $date = date("l", $date);
    $date = strtolower($date);
    echo $date;
    if($date == "saturday" || $date == "sunday") {
        return "true";
    } else {
        return "false";
    }
}

我使用以下方法调用该函数:

$isthisaweekend = isweekend('2011-01-01');

答案 1

如果你有 PHP >= 5.1:

function isWeekend($date) {
    return (date('N', strtotime($date)) >= 6);
}

否则:

function isWeekend($date) {
    $weekDay = date('w', strtotime($date));
    return ($weekDay == 0 || $weekDay == 6);
}

答案 2

另一种方法是使用 DateTime 类,这样您也可以指定时区。注意:PHP 5.3 或更高版本。

// For the current date
function isTodayWeekend() {
    $currentDate = new DateTime("now", new DateTimeZone("Europe/Amsterdam"));
    return $currentDate->format('N') >= 6;
}

如果您需要能够检查某个日期字符串,则可以使用DateTime::createFromFormat

function isWeekend($date) {
    $inputDate = DateTime::createFromFormat("d-m-Y", $date, new DateTimeZone("Europe/Amsterdam"));
    return $inputDate->format('N') >= 6;
}

这种方式的美妙之处在于,您可以在不更改PHP中全局时区的情况下指定时区,这可能会在其他脚本(例如Wordpress)中引起副作用。


推荐