[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Смена кода каждые 5 дней.
evdonik
Всем доброго времени суток камрады!

Есть такого рода задачка : кусок когда должен меняться каждые 5 дней, всего 3 варианта кода код №1 -> пять дней прошло -> код №2 -> пять дней прошло ->код №3 -> пять дней прошло -> код №1 и так далее.

Подкиньте идейку по реализации.. голову сломал.

Допустим у нас есть дата старта,по прохождении 5 дней ее записывать в файл и она уже будет новой датой старта, или можно как то кратное сделать.. голова квадратная уже..





Ser18
Записываете дату и номер варианта в БД

При каждом обновлении страницы проверяете, дата в БД больше текущей, если меньше, то прибавляете к текущей дате пять дней, увеличиваете номер кода на один и записываете в БД
evdonik
Цитата (Ser18 @ 14.12.2012 - 08:46)
Записываете дату и номер варианта в БД

При каждом обновлении страницы проверяете, дата в БД больше текущей, если меньше, то прибавляете к текущей дате пять дней, увеличиваете номер кода на один и записываете в БД

БД не пройдет, тут вариант без БД ищу.

Michael
Тыц

_____________
There never was a struggle in the soul of a good man that was not hard
Valick
evdonik, что из себя представляет этот кусок кода? что он выполняет и вчем должны быть различия?
самое простое это действительно инклюдить этот кусок сторонним файлом, но может есть и другие варианты.

_____________
Стимулятор ~yoomoney - 41001303250491
evdonik
Цитата (Valick @ 14.12.2012 - 09:34)
evdonik, что из себя представляет этот кусок кода? что он выполняет и вчем должны быть различия?
самое простое это действительно инклюдить этот кусок сторонним файлом, но может есть и другие варианты.

Три разных куска кода.
code1.php
code2.php
code3.php

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

дата запуска допустим
10.12.2012

<?
$date_start="10.12.2012";
$date_today= date('d.m.Y');

if (первый запуск) {$code= code1;}
//прошло 5 дней
//code2
//прошло еще 5 дней
//code3
//еще 5
//code1


?>


Попробовать по пятеркам бить..
берем дату отсчета (прописываем в скрипте) и считаем сколько пятерок дней прошло с нее. Ну и дальше остаток от деления

но по как то сумбурно я это представляю.
Dezigo
Сделай 5 классов. Monday,Tuesday,Wednesday,.. itd
Каждый класс имеет один и тот же тип.
Пример на этом

		$weeks = new Week();
$weeks->setDay(new Monday());
$weeks->run();


Надо сменить день, просто заружаешь нужный класс


		$weeks = new Week();
$weeks->setDay(new Tuesday());
$weeks->run();
$weeks->setDay(new Wednesday());
$weeks->run();

Паттерн стратегии.
http://en.wikipedia.org/wiki/Strategy_pattern
http://sourcemaking.com/design_patterns/strategy

evdonik
Хм..классы интересно конечно, но с ООП туго пока, но спасибо большое за идею!)
Valick
<?php
$date_start="10.12.2012"; брать из файла
$date_today= date('d.m.Y');
if(date($date_start,strtotime('15 day'))>date('d.m.Y')) {$date_start=date($date_start,strtotime('15 day')); и сохранить в файл }
$code= "code1.php";
if(date($date_start,strtotime('5 day'))>date('d.m.Y')) $code= "code2.php";
if(date($date_start,strtotime('10 day'))>date('d.m.Y')) $code= "code3.php";
include($$code);
?>

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

_____________
Стимулятор ~yoomoney - 41001303250491
Hello
evdonik
$day = date('z')%15;
if ($day < 5) {
//code 1
} elseif ($day < 10) {
//code 2
} else {
//code 3
}


_____________
VPS от 5$, первые 2 месяца - бесплатно.
evdonik
Цитата (Valick @ 14.12.2012 - 10:07)
<?php
$date_start="10.12.2012"; брать из файла
$date_today= date('d.m.Y');
if(date($date_start,strtotime('15 day'))>date('d.m.Y')) {$date_start=date($date_start,strtotime('15 day')); и сохранить в файл }
$code= "code1.php";
if(date($date_start,strtotime('5 day'))>date('d.m.Y')) $code= "code2.php";
if(date($date_start,strtotime('10 day'))>date('d.m.Y')) $code= "code3.php";
include($$code);
?>

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

Каждые 5 дней на сайте смена формы рекламной акции, 5 дней одна форма висит, 5 дней вторая, 5 дней третья;)
Valick
понятно, ну в принципе да, проще инклудить
Hello, а как будет проходить смена года наример с 12 на 13? руками править? smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
evdonik
Цитата (Valick @ 14.12.2012 - 10:36)
понятно, ну в принципе да, проще инклудить
Hello, а как будет проходить смена года наример с 12 на 13? руками править? smile.gif

Хороший вопрос..
evdonik
Решение найдено))) спасибо за помощь)))



$start_time = mktime(0, 0, 0, 12, 14, 2012);
$current_time = time();
include 'code' . getCode($start_time, $current_time) . '.php';


function getCode($start_time, $current_time)
{
$days_delta = floor(($current_time - $start_time) / (5*24*60*60));
return $days_delta % 3 + 1;


если кому надо))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.