2015-03-10 2 views
1

Я хочу составить еженедельное расписание, и мне нужно прикрепить даты в html-разметке. До сих пор я получил этот код:Отображение даты с понедельника по воскресенье

<table class="schedule-table"> 
     <tr class="days-tr"> 
     <td> 
      <span><?php echo $date = date("dS",strtotime('monday this week')).' - '.date("dS",strtotime("sunday this week")); ?> </span> 
      <span> <?php echo $date = date("M-Y",strtotime('monday this week')); ?></span> 
     </td> 
     <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('monday this week')); ?>">Monday</td> 
     <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('tuesday this week')); ?>">Tuesday</td> 
     <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('wednesday this week')); ?>">Wednesday</td> 
     <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('thursday this week')); ?>">Thursday</td> 
     <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('friday this week')); ?>">Friday</td> 
     <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('saturday this week')); ?>">Saturday</td> 
     <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('sunday this week')); ?>">Sunday</td> 
     </tr> 
    </table> 

А вот выход:

<table class="schedule-table"> 
    <tbody> 
     <tr class="days-tr"> 
      <td> 
       <span>16th - 15th </span> 
       <span> Mar-2015</span> 
      </td> 
      <td data-workout-day="16-Mar-2015">Monday</td> 
      <td data-workout-day="10-Mar-2015">Tuesday</td> 
      <td data-workout-day="11-Mar-2015">Wednesday</td> 
      <td data-workout-day="12-Mar-2015">Thursday</td> 
      <td data-workout-day="13-Mar-2015">Friday</td> 
      <td data-workout-day="14-Mar-2015">Saturday</td> 
      <td data-workout-day="15-Mar-2015">Sunday</td> 
     </tr> 
    </tbody> 
</table> 

Как вы можете видеть, что это берет дату в понедельник с следующей недели вместо 9-Mar-2015? Как исправить это, чтобы отобразить его правильно? (например, если у нас есть пятница 13 марта, я хочу, чтобы mon, tues, у вас были даты с предыдущей недели, а не следующие.

ответ

0

strtotime очень мощный и может принимать много строк, чтобы получить нужную дату. этот случай, вы хотите this week получить эту неделю дату

изменяя «в следующий понедельник» и т.д., чтобы «этой неделе в понедельник» вы получаете даты в понедельник этой текущей недели:.

<table class="schedule-table"> 
    <tr class="days-tr"> 
    <td> 
     <span><?php echo $date = date("dS",strtotime('this week')).' - '.date("dS",strtotime("this week sunday")); ?> </span> 
     <span> <?php echo $date = date("M-Y",strtotime('monday this week')); ?></span> 
    </td> 
    <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('this week monday')); ?>">Monday</td> 
    <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('this week tuesday')); ?>">Tuesday</td> 
    <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('this week wednesday')); ?>">Wednesday</td> 
    <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('this week thursday')); ?>">Thursday</td> 
    <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('this week friday')); ?>">Friday</td> 
    <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('this week saturday')); ?>">Saturday</td> 
    <td data-workout-day="<?php echo $date = date("d-M-Y",strtotime('this week sunday')); ?>">Sunday</td> 
    </tr> 
</table> 

формирует:

<table class="schedule-table"> 
    <tbody> 
     <tr class="days-tr"> 
      <td> 
       <span>09th - 15th </span> 
       <span> Mar-2015</span> 
      </td> 
      <td data-workout-day="09-Mar-2015">Monday</td> 
      <td data-workout-day="10-Mar-2015">Tuesday</td> 
      <td data-workout-day="11-Mar-2015">Wednesday</td> 
      <td data-workout-day="12-Mar-2015">Thursday</td> 
      <td data-workout-day="13-Mar-2015">Friday</td> 
      <td data-workout-day="14-Mar-2015">Saturday</td> 
      <td data-workout-day="15-Mar-2015">Sunday</td> 
     </tr> 
    </tbody> 
</table> 
0

Если предполагается, что вы неделя начинается с понедельника

то в первую очередь проверить

$day = date('l') 
if($day != 'Monday'){ 
echo $date = date("d-M-Y",strtotime("previous monday")); 
} 
Смежные вопросы