PHP / MySQL - определить серию дат на основе даты начала + INSERT - PullRequest
0 голосов
/ 13 августа 2010

Я хотел бы создать список дат, основанный на определяемой пользователем «дате начала», за 12-недельный период.

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

Как только у меня появятся эти даты, мне нужно будет вставить их в таблицу БД.

Я хотел бы сказать, что я сделал несколько попыток понять, как это сделать, я считаю PHP Mktime (http://php.net/manual/en/function.mktime.php), и счетчик может быть в нужной области, но я немногов тупик.

Любые предложения или ссылки будут высоко оценены, спасибо.

РЕДАКТИРОВАТЬ:

Нашел это, что я пропустил в первый раз:

PHP: получить следующие 13 дат с даты?

Это происходит в нужной области.

РЕДАКТИРОВАТЬ 2:

Из приведенного выше поста это очень хорошо работает для получения любого числа дат от заданной даты начала:

$start = strtotime($s_row['schedule_start_date']);
$dates=array();
for($i = 1; $i<=42; $i++)
{
    array_push($dates,date('Y-m-d', strtotime("+$i day", $start)));
}
print_r($dates);

Я изменил пример выше, чтобы получать даты на 6 недель (42 дня).У кого-нибудь есть какие-либо подсказки относительно того, как изменить это, чтобы разделить 42 дня на недели?

Поэтому, работая с результатами в массиве, я бы хотел pсоставить список недель, содержащих рассчитанные даты - 1-я неделя (список дат), 2-я неделя (список дат) и т. д ...?

1 Ответ

1 голос
/ 13 августа 2010

Во многих, многих случаях strtotime () может быть спасителем.

<?PHP
$userdate = strtotime($_REQUEST['whatever']);

$date1 = strtotime('+1 week',$userdate);
$date2 = strtotime('+10 days',$userdate);
$date3 = strtotime('+1 month',$userdate);

$ dateN будет отметкой времени, которую вы можете просто передать на сегодняшний день.

...