我想在 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");
}
}
更新
根据 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");
}
}
关于php - 如何在PHP数组中隐藏星期六和星期日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65388182/