как получать сообщения со вторника по понедельник каждую неделю, начиная со вторника

#date #range

#Дата #диапазон

Вопрос:

Я пытаюсь суммировать coloumn в своей базе данных, и он должен начинаться со вторника по понедельник каждую неделю. т.е. Текущая неделя моих вычислений должна быть с 4 по 10 октября, и она предназначена для сброса каждые вторники.

Я создал этот код

 <?php
$refdate = strtotime(date('o-WW'));
$tuesday = strtotime(" 1 day",$refdate);
echo date("M j, Y", $tuesday) . "<br>";
?>
  

Для

 <?php
$refdate = strtotime(date('o-WW'));
$monday = strtotime("next monday",$refdate);
echo date("M j, Y", $monday) . "<br>";
?>
  

Но сегодня, вместо того, чтобы получать с 4 по 10 октября, я получаю с 11 по 17 октября. Пожалуйста, кто-нибудь, помогите мне. Я в замешательстве.

Ответ №1:

функция даты возвращает текущую неделю, которая начинается с понедельника (10-го), и вы добавляете единицу к дате, что делает ее 11-й. Следующий понедельник просто 17-й.

 <?php
//default get last tuesday
$startdate = "last tuesday";
if (date('N') === '2')
{ 
  // its Tuesday today
  $startdate = "today";
}
$start_week = strtotime($startdate);
$end_week = strtotime("next monday",$start_week);
$start = date("M j, Y",$start_week); 
$end = date("M j, Y",$end_week);
echo $start ."<br>";
echo $end."<br>";
?>