Форум УральскИнфо — 22 года вместе!

Здравствуйте, гость ( Вход | Восстановить аккаунт )

> Вывод сообщения через каждые N-дней
ku7mich
сообщение 1.11.2010, 17:53
Сообщение #1


Гуру
***

Группа: Пользователи
Сообщений: 960
Регистрация: 20.11.2005
Пользователь №: 810



Вывод определённого сообщения каждые 4-дня. До 1-го ноября всё было пучком, а вот первого, разность между датами равняется 15, вместо 16. Где я тупанул, подскажите?

<?php
setlocale(LC_TIME, "ru-RU");

// Дата одного из респов, начало отсчёта для счётчика
$sd=date ("d-M-Y", mktime(0,0,0, 10, 16, 2010));

// Текущая дата
$cd=date ("d-M-Y", mktime(0,0,0));

// Периода респа. В данном случае 4 дня
$i=4;

$zd=($cd-$sd)%$i;
$dd=$i-$zd;

if ($zd==0)
{
echo ("<div><font color=#ff0000><b>Сегодня большой респ!</font></b> Cбор в Ventrillo в: <b>10:00 (по Москве)</b></div>");
}
else
{
echo ("<div>Следующий большой респ: <b>".strftime("%A %e %B %Y", mktime(0, 0, 0, date("m"), date("d")+$dd , date("Y")))."</b></div>");
}

?>


--------------------
"Как странно – когда исчезает темнота, перестаешь видеть свет!" (С. Лукьяненко)
Перейти в начало страницы
 
+Цитировать сообщение
 
Начать новую тему
Ответов
ku7mich
сообщение 2.11.2010, 9:00
Сообщение #2


Гуру
***

Группа: Пользователи
Сообщений: 960
Регистрация: 20.11.2005
Пользователь №: 810



А чему равна cd или zd, в определенный момент времени? В каком формате переменная?
$sd=date ("d-M-Y", mktime(0,0,0, 10, 16, 2010)) - задана вручную, выводит 16-Oct-2010
$cd=date ("d-M-Y", mktime(0,0,0)) - сегодняшняя дата, обновляется каждый раз, когда обновляется страница.
$zd - это остаток при делении разницы между днём сегодняшним ($cd) и стартовой датой ($sd).

mktime - Функция возвращает метку времени Unix, соответствующую дате и времени, заданным аргументами. Метка времени - это целое число равное разнице в секундах между заданной датой/временем и началом Эпохи Unix (The Unix Epoch, 1 января 1970 г). Соответственно $sd и $cd - целое число.

date_diff
(PHP 5 >= 5.3.0)
У хостера 5.2.5. Или ты предлагаешь через mysql?
Он мне 1-го числа выдал неправильное сообщение, т.е. не удовлетворял первому условию и вывел второе сообщение вместо первого.

Да, Sight прав, у меня вычитаются дни, а мне надо чтобы вычитались даты. Пойду чего-нибудь покурю.

Сообщение отредактировал ku7mich - 2.11.2010, 9:04


--------------------
"Как странно – когда исчезает темнота, перестаешь видеть свет!" (С. Лукьяненко)
Перейти в начало страницы
 
+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Сейчас: 14.11.2026, 22:28