Как создать массив из семи дней со среды по пятницу, чтобы изменить в пятницу в 10 часов утра

0

То есть:

Если теперь менее 10:00 в пятницу на этой неделе, создавая массив, содержащий субботу предыдущей недели, следуйте в воскресенье, понедельник, вторник, среду и пятницу этой недели.

Если сейчас в пятницу на этой неделе больше 10:00, заменив предыдущий массив другим массивом, содержащим субботу на этой неделе, а затем в воскресенье, вторник, вторник, среду и пятницу следующей недели.

Я не могу выразить в сценарии логику этой ситуации.

Спасибо

После прочтения многих, многих сообщений я прихожу к этому, что не работает

$current_time = strtotime('now');
$week_start_day = "friday";
$start_time = "10:00";

if ($current_time <= strtotime('$week_start_day this week $start_time')) {
    $day_1 = date('d/m/Y', strtotime('previous week friday', strtotime(date('d-m-Y'))));
    $day_2 = date('d/m/Y', strtotime('previous week saturday ', strtotime(date('d-m-Y'))));
    $day_3 = date('d/m/Y', strtotime('previous week sunday  ', strtotime(date('d-m-Y'))));
    $day_4 = date('d/m/Y', strtotime('previous week monday', strtotime(date('d-m-Y'))));
    $day_5 = date('d/m/Y', strtotime('previous week tuesday', strtotime(date('d-m-Y'))));
    $day_6 = date('d/m/Y', strtotime('this week wednesday  ', strtotime(date('d-m-Y'))));   
    $day_7 = date('d/m/Y', strtotime('this week thursday ', strtotime(date('d-m-Y')))); 

} 
else{

    $day_1 = date('d/m/Y', strtotime('this week saturday  ', strtotime(date('d-m-Y'))));
    $day_2 = date('d/m/Y', strtotime('this week sunday', strtotime(date('d-m-Y'))));
    $day_3 = date('d/m/Y', strtotime('this week monday', strtotime(date('d-m-Y'))));
    $day_4 = date('d/m/Y', strtotime('this week tuesday  ', strtotime(date('d-m-Y')))); 
    $day_5 = date('d/m/Y', strtotime('this week wednesday ', strtotime(date('d-m-Y'))));    
    $day_6 = date('d/m/Y', strtotime('this week thursday ', strtotime(date('d-m-Y'))));
    $day_7 = date('d/m/Y', strtotime('this week friday ', strtotime(date('d-m-Y'))));
}


echo "
    $day_1 <br> 
    $day_2 <br>
    $day_3 <br>
    $day_4 <br> 
    $day_5 <br>
    $day_6 <br> 
    $day_7 <br>     
    ";
  • 0
    Что не работает с вашим сценарием? Ну, вы делаете то же самое снова и снова здесь. Не могли бы вы просто установить дату начала и использовать +1 day для остальных 6?
  • 0
    С этим я беру только семь дней с сегодняшнего дня. Но ситуация сложнее. Вы должны понять ситуацию, если вы поможете мне решить
Теги:
date

1 ответ

0
Лучший ответ

если я понимаю вас правильно, это то, что вы хотите, не проверили его очень хорошо, поэтому могут возникнуть ошибки, но это идея.

$fri=strtotime(" Friday this week + 4 hours ");// 10:00 GMT 
$now=time();

$week=array();

if($now<=$fri)
{
    $day = "last Saturday";
}
else
{
    $day = "next Saturday";
}

for($i=0;$i<7;$i++)
{
    $week[] = date("d/m/Y", strtotime($day." +".$i." day"));
}

foreach($week as $day)
{
    echo $day;
}
  • 0
    Вы прекрасно поняли мою ситуацию, и вы решили идеально и элегантно. Я только что исправил две ошибки. Первая строка: $ fri = strtotime («Пятница на этой неделе + 10 часов»); // 10:00 GMT Во второй «for»: $ week [] = date («d / m / Y», strtotime («next Суббота + "$ i" день ") ..); Эти исправления верны?
  • 0
    введите $ fri и скопируйте значение, а затем перейдите на epochconverter.com, чтобы узнать, что это за значения, и измените его соответствующим образом. И в socond one я не вижу, что не так.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню