Мне нужна помощь Выберите каждую среду, начиная с 5/2/12. Этот код ниже выбирает каждую среду, начиная с текущей недели. Но мне нужно установить начальную неделю. Я знаком с PHP, но не знаком с датами php. Поэтому, пожалуйста, будьте как можно более конкретными. Я нашел это:
$number_of_dates = 10; for ($i = 0; $i < $number_of_dates; $i++) { echo date('md-Y', strtotime('Wednesday +' . ($i * 2) . ' weeks')). "<br>".PHP_EOL; }
Используйте mktime
чтобы создать свою стартовую дату и передать это как второй аргумент strtotime
чтобы подсчет strtotime
оттуда:
$startDate = mktime(0, 0, 0, 5, 2, 2012); // May 2, 2012 for ($i = 0; $i < $number_of_dates; $i++) { $date = strtotime('Wednesday +' . ($i * 2) . ' weeks', $startDate); echo date('md-Y', $date). "<br>".PHP_EOL; }
Смотрите в действии .
Дайте ему дату в строке, вместо «среды» (которая выбирает следующую среду), напишите:
strtotime('20120502 +' . ($i * 2) . ' weeks'))
Выбрать эту дату. (Формат – yyyymmdd).
Если у вас есть PHP 5.2.0 или новее, вы можете сделать это легко следующим образом:
$date = new DateTime('2006-05-02'); for ($i=0; $i<10; $i++) { echo $date->format('md-Y').'<br/>'.PHP_EOL; $date->modify('+1 week'); }
Вы также можете использовать DatePeriod
и DateInterval
чтобы облегчить жизнь.
Стандартный отказ от ответственности: для обоих классов выше требуется PHP> = 5.3.0.
$number_of_dates = 10; $start_date = new DateTime("5/2/12"); $interval = DateInterval::createFromDateString("second wednesday"); $period = new DatePeriod($start_date, $interval, $number_of_dates - 1); foreach ($period as $date) { echo $date->format("mdY") . "<br>" . PHP_EOL; }