Даты, диапазоны дат

livelink
На сайте с 30.04.2006
Offline
117
367

Задача какая:

Газета выходит по пятницам. Рекламу в нее нужно сдать до четверга.

Заказ на размещение рекламы в газете поступил в какую-то дату.

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

$agdeta=explode("-", $at_date);

$agoday=$agdeta["2"];
$agomonth=$agdeta["1"];
$agoyear=$agdeta["0"];
$agat_date="$agoday.$agomonth.$agoyear";
$agatdate="$agoyear-$agomonth-$agoday";

$weekday=date('w',strtotime("$agat_date"));

$sd=($weekday);
$nowdate=date( 'd-m-Y' );
$gra="";
$counter="";
$given_year="";
$for_start="";
$for_end="";
$i="";

if ($sd == 1 || $sd == 2 || $sd == 3 || $sd == 4) {

for ($counter=1; $counter <= $order_skoka; $counter++) {
$given_year = strtotime("$agoday.$agomonth.$agoyear");
$for_start = strtotime('Friday', $given_year);
$for_end = strtotime('+'.$counter.' week', $given_year);
for ($i = $for_start; $i <= $for_end; $i = strtotime('+' .$counter.' week', $i)) {
$gra.=date('d.m.Y', $i) . '<br />';
}}

} else {

for ($acounter=1; $acounter <= $order_skoka; $acounter++) {
$given_year = strtotime("$agoday.$agomonth.$agoyear");
$for_start = strtotime('Friday', $given_year);
$for_end = strtotime('+'.$acounter.' week', $given_year);
for ($i = $for_start; $i <= $for_end; $i = strtotime('+' .$acounter.' week', $i)) {
$gra.=date('d.m.Y', $i) . '<br />';
}}

}

выводит не то что нужно.. ;(

Знакомства БЕЗ регистрации - http://www.privetka.ru (http://www.privetka.ru), КРЕАТИВНАЯ РЕКЛАМА - http://advertisio.ru (http://advertisio.ru), Каталог автозапчастей - http://aubb.ru (http://aubb.ru)
4arger
На сайте с 17.12.2008
Offline
95
#1

<?php 
$stringFormat = "%s<br>\n";
$dateFormat = 'Y-m-d';
try {
$orderDate = new DateTime('2012-09-19');
$date = new DateTime(date('Y-m-d', strtotime('Friday')));

if ($orderDate->format('w') < 4) {
printf($stringFormat, $date->format($dateFormat));
}

for ($i = 1; $i < 100; $i++) {
$date = new DateTime(date('Y-m-d', strtotime($date->format('Y-m-d') . ' + 1 week')));
printf($stringFormat, $date->format($dateFormat));
}
} catch (Exception $e) {
echo $e->getMessage();
exit();
}

если правильно понял

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий