php - 如何在PHP数组中隐藏星期六和星期日

标签 php date

我想在 PHP 中隐藏星期六和星期日。

我构建了以下代码:

$begin = new DateTime($row['date']);
$end = new DateTime($row['dateul']);
$end = $end->modify( '+1 day' ); 

$interval = new DateInterval('P1D');
$daterange = new DatePeriod($begin, $interval ,$end);

foreach($daterange as $date){
    $array[] = $date->format("Y-m-d");
}

到目前为止,代码正在运行,但它输出了该日期范围内的完整周/天。 我找到了这段代码:

if (strcasecmp($daterange, 'Sun') != 0
         && strcasecmp($daterange, 'Sat') != 0){

     }

我的理解是否正确,例如,如果 value = 1 它将输出星期六?

因为主要思想如下: 例如,如果 day day = 0 将其隐藏在数组中,如果 sunday=1 将其显示在数组中。 这些值来自 MySQL。

最佳答案

您可以使用N DateTime::format 的格式检查星期几,星期六返回 6,星期日返回 7,因此只要该值小于 6,就将其添加到数组中:

$interval = new DateInterval('P1D');
$daterange = new DatePeriod($begin, $interval ,$end);
$array = array();
foreach($daterange as $date){
    if ($date->format('N') < 6) {
        $array[] = $date->format("Y-m-d");
    }
}

Demo on 3v4l.org

更新

根据 OP 的评论,要包含的天数有 $row[<dayname>] = 1 。在这种情况下,您可以使用此 foreach 循环,使用 l格式以获取一周中的全日名称和 strtolower转换为小写以用作 $row 的索引:

foreach($daterange as $date){
    if ($row[strtolower($date->format('l'))]) {
        $array[] = $date->format("D Y-m-d");
    }
}

Demo on 3v4l.org

关于php - 如何在PHP数组中隐藏星期六和星期日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65388182/

相关文章:

php - 在 Codeigniter 中使用 AJAX 显示图像列表

php - 与wordpress在 Varnish 配置上的cookie问题

java - 如果我们将两个日期传递给java中的函数,有没有办法通过数组获取日期

php - 如何从函数返回对象?

PHP sf.1.4 插入 1.6 : memory leaking while looping results

php - 如何在 PHP 中有一个 64 位整数?

python - Pandas groupby 排名日期时间

r - 根据特定时间段内的事件日期创建虚拟变量

php - Laravel - 在编辑 View 上添加日期验证

date - Elasticsearch (7.3) 日期映射解析失败