Как отобразить php сегодня и следующие четыре дня - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть приложение, которое мне нужно отобразить сегодня, и следующие четыре дня.

$daysOn = [ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Mon'];

$daysOff = [ 'Sat', 'Sun' ];

$today = date("N", strtotime('today'));

$yesterday = date("N", strtotime('yesterday'));

$daysOnRearranged = array_merge(array_slice($daysOn, $today), array_slice($daysOn, 0, $yesterday));

В настоящее время это показывает мне:

Monday, Monday, Tuesday, Wednesday, Thursday.

Мне нужно показать сегодня, а следующий на несколько дней.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

По дням проверять условие для проверки внутри цикла.
Пожалуйста, ознакомьтесь с приведенным ниже фрагментом и рабочим кодом.

<code><?php

function pr($arr = [])
{
    echo "<pre>";
    print_r($arr);
    echo "
";} $ daysOn = ['Mon', 'Tue', 'Ср., Чт, пт, пн]; $ daysOff = ['Sat', 'Sun']; $ today = date ("N", strtotime ('today')); $ nextDays = []; $ j = $ i = 0; while ($ j! = 4) {// пока не будет найдено следующие 4 рабочих дня $ day = date ('D', strtotime ("today + $ i day")); // он будет продолжать проверять следующие рабочие дни, если (in_array ($ day, $ daysOn)) {// проверит, включен ли инкрементный день в днях или нет $ nextDays [] = $ day; // он добавит в днях вмассив результатов $ j ++;} $ i ++;} pr ($ nextDays); die;

Здесь работает demo .

EDIT

Вышеуказанный фрагмент предназначен для проверки дней.
Вы можете проверить выходные дни, как показано ниже.

while($j != 4){
    $day = date('D', strtotime("today +$i day"));
    if(!in_array($day, $daysOff)){
        $nextDays[] = $day;
        $j++;
    }
    $i++;
}
pr($nextDays);die;
0 голосов
/ 21 сентября 2018

Здесь я использую возможность strtotime для тренировки даты, используя строку типа «Сегодня + 1 день».Я также использую символ «D», который возвращает «Текстовое представление дня, три буквы».Вы можете изменить «D» на «l», если вы хотите полное название дня.

$nextDays = [];

for ($i = 0; $i <= 4; $i++) {

        $nextDays[] = date("D", strtotime("today + $i day"));
}

var_dump($nextDays);

Для удаления выходных:

$nextDays = [];
$daysOff = ["Sat", "Sun"];

$n = 0; 

do {
    $day = date("D", strtotime("today + $n day"));
    if (!in_array($day, $daysOff)) { // Check if the above $day is _not_ in our days off
        $nextDays[] = $day;
    }
    $n ++; // n is just a counter
} while (count($nextDays) <= 4); // When we have four days, exit.

var_dump($nextDays);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...