показ даты нужного дня недели

василий

Новичок
показ даты нужного дня недели

Пытаюсь вывести на странице дату ближайшей или следующей пятницы, код который привожу ниже то считает нормально то прибавляет слишком мало дней, то слишком ного...
Подскажите пожалуйста что не так? Сегодня например среда а он показал дату не пятницы а вообще воскресенья, а должен был показать дату следующей пятницы (не 20 а 25 -е)

Версия PHP: 5.2.5

<?php

// вычисляем дату до ближайшей пятницы
$date4 = date("d.m.Y", (time()+3600*24*4)); // вычисляем дату в формате "День + 4 дня, месяц, год"
$date5 = date("d.m.Y", (time()+3600*24*5)); // вычисляем дату в формате "День + 5 дней, месяц, год"
$date6 = date("d.m.Y", (time()+3600*24*6)); // вычисляем дату в формате "День + 6 дней, месяц, год"
$date7 = date("d.m.Y", (time()+3600*24*7)); // вычисляем дату в формате "День + 7 дней, месяц, год"
$date8 = date("d.m.Y", (time()+3600*24*8)); // вычисляем дату в формате "День + 8 дней, месяц, год"
$date9 = date("d.m.Y", (time()+3600*24*9)); // вычисляем дату в формате "День + 9 дней, месяц, год"
$date10 = date("d.m.Y", (time()+3600*24*10)); // вычисляем дату в формате "День + 10 дней, месяц, год"

$date = date("d.M.Y "); // вычисляем двту в формате "День, месяц, год"
$time = date("h:i:s"); // вычисляем время в формате "Ч.М.С."

// выводим дату и время
echo ("Текущая дата: $date <br>"); // выводим дату

// вычисляем день недели и выводим
$dn = date("l");
if ($dn="Monday") {$den="$date10";}
if ($dn="Tuesday") {$den="$date9";}
if ($dn="Wednesday") {$den="$date8";}
if ($dn="Thursday") {$den="$date7";}
if ($dn="Friday") {$den="$date6";} // нужный день недели
if ($dn="Saturday") {$den="$date5";}
if ($dn="Sunday") {$den="$date4";}

// выводим дату недели
echo ("<p/>Дата отправки Вашего заказа:<b> $den </b>");
?>
 

Вурдалак

Продвинутый новичок
PHP:
<?php

echo "Next Friday: " . date("d.m.Y", strtotime('next Friday'));

?>
P.S. > time()+3600*24*4
Не во всех сутках 86400 секунд, скрипт нерабочий
 

василий

Новичок
а если надо что-бы, если до ближайшей пятницы менее трёх дней, то выводило след пятницу? Как тогда?
потому и выбрал этот расчёт
Но Спасибо и на этом!
 

baev

‹°°¬•
Команда форума
«Нерабочесть» скрипта вот в этом:
PHP:
$dn="Monday"

василий, Вы присваивание от сравнения отличаете?

На будущее: http://phpfaq.ru/debug
 

василий

Новичок
Автор оригинала: С.
strtotime('next Friday + 1 week')
Спасибо!

-~{}~ 17.12.09 10:22:

Блин не могу написать :(...

Надо такое: Если разница между сегодняшней датой и датой ближайшей пятницы больше трёх дней - то показать дату длижайшей пятницы, в противном случае показать дату следующей пятницы (('next Friday + 1 week'))
 

С.

Продвинутый новичок
Ну разве ты не можешь определить сколько дней (±1 час) между 'today' и 'next Friday'?
 

С.

Продвинутый новичок
Раступливай!

round((strtotome('next Friday')-strtotime('today'))/86400)
 

василий

Новичок
Вроде такой код показывает...:
<?php
$date1 = date("d.m.Y", strtotime('next Friday'));
$date2 = date("d.m.Y", strtotime('next Friday + 1 week'));

$dn = round((strtotime('next Friday')-strtotime('today'))/86400);

if ($dn> 3) {$den="$date1";}
if ($dn< 3) {$den="$date2";}

echo ("<p/>Дата отправки Вашего заказа:<b> $den </b>");
?>

Вот только попробовал однёрку вместо тройки поставить и выдало ошибку. Видать где-то в синтаксисе ошибка...?

Подскажите мастера. А-то я ещё и с XSL тут работаю - голова кругом. Этот -то код сделал и забыл закрыть, ес-но ошибка - чуть монитор не расхлестал, пока не увидел косяк...

-~{}~ 17.12.09 18:52:

всё разобрался!!!
Просто не определил на случай если будет равно трём...

Всем спасибо за внимание!!!
 
Сверху