Преобразование дня недели в даты текущего месяца с помощью MYSQL и PHP
Потратил некоторое время на поиск и не смог найти никаких ответов. Действительно простой вопрос, я надеюсь.
В моей базе данных есть строковый столбец dayOfWeek.
Я использую это, чтобы отслеживать, на какой день недели запланированы еженедельные события. Обычно я сопоставляю dayOfWeek с текущим днем с помощью PHP и отображаю правильные события.
То, что я хочу сделать, это показать календарь в будущее, который составляет список будущих дат еженедельного повторяющегося события.
Например, если событие происходит во вторник, а февраль 2017 года имеет вторники 7, 14, 21 и 28 числа. Я хотел бы использовать PHP для отображения как таковой.
Я знаю, что strtotime() используется для того, чтобы сделать обратное, найти день по дате, но можно ли легко сделать обратное?
Извините, если мой вопрос плохо сформулирован или отсутствует информация.
3 ответа
ИСПОЛЬЗУЙТЕ ДЕЛО ВТОРНИКА 2017 ФЕВРАЛЯ
$n=date('t',strtotime("2017-02-01")); // find no of days in this month
$dates=array();
for ($i=1;$i<=$n;$i++){
$day=date("D",strtotime("2017-02-".$i)); //find weekdays
if($day=="Tue"){
$dates[]="2017-02-".$i;
}
}
print_r($dates);
Вы могли бы сделать это:
// The day of the week.
$dayOfEvent = row['day'];
// Say, you wanted the next 5 weeks.
$numberOfWeeks = 5;
$tempDate = date(U);
$counter = 0;
do{
$tempDate = $tempDate + 86,164;
if(date('D', $tempDay) == 'Tue'){
echo date('l jS \of F Y', $tempDay);
$counter++;
}
}while($counter < $numberOfWeeks);
Сначала попробуйте найти дату для дня на текущей неделе. После этого продолжайте добавлять 7-дневные кратные к нему.
<?php
// $timestamp = now();
for ($i=0; $i < 7; $i++) {
$days = $i." days";
$t = date('Y-m-d', strtotime($days));
$dayOfTheDay = date("D",strtotime($t));
if ( $dayOfTheDay == day from table )
{
$current_date = $t;
break;
}
}
for ($i=0; $i < 200; $i++) {
in this loop add 7 days to current_date
}
?>