Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как обновлять дату каждые 36 часов?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
SharkNancy
Отправлено: 10 Августа, 2013 - 02:56:11
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




Есть такая проблема. Имеется код, который подсчитывает дату на 36 часов вперед. Вроде бы все просто:

PHP:
скопировать код в буфер обмена
  1. $limit = date('j F',time()+129600);   // 60*60*48 = 129600


Но! Нужен скрипт, который будет считать каждые 36 часов от даты Х, например от Нового Года, и затем выводить эту дату, если она является ближайшей следующей кратной 36 часам к текущей дате. Например, если сегодня 10 августа - будет выведено 11 августа (если только он является кратным 36 часам), а не 9 августа.

Не знаю даже как это все реализовать... Помогите пожалуйста!

Заранее спасибо!
 
 Top
DlTA
Отправлено: 10 Августа, 2013 - 03:02:15
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




чет я не догнал
вам нужно просчитывать когда следующие 36 часов настанут, или
делать просчет каждые 36 часов,
это разные задачи

первая считается путем расчета остатка от деления прошедшего времени на эти 36 часов полученное отнимаете от 36 часов и получаете следующий интервал

вторая задача решается планировщиками, если никсы то крон
 
 Top
SharkNancy
Отправлено: 10 Августа, 2013 - 03:37:43
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




DlTA пишет:
чет я не догнал
вам нужно просчитывать когда следующие 36 часов настанут, или
делать просчет каждые 36 часов,
это разные задачи


Получается, что первый вариант)

То есть нужно, чтобы высчитывало следующие 36 часов, но не от текущей даты, а от предыдущей даты, также кратной 36 часам...

(Отредактировано автором: 10 Августа, 2013 - 04:00:31)

 
 Top
DlTA
Отправлено: 10 Августа, 2013 - 11:10:59
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




$timeStart;// это веремя начала отсчета timestamp
(36*3600) - ((time()-$timeStart)%(3600*36)) // а это оставшееся время до следующего 36 часового момента
 
 Top
SharkNancy
Отправлено: 10 Августа, 2013 - 16:08:41
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




DlTA пишет:
$timeStart;// это веремя начала отсчета timestamp
(36*3600) - ((time()-$timeStart)%(3600*36)) // а это оставшееся время до следующего 36 часового момента


В общем, сделала так:

PHP:
скопировать код в буфер обмена
  1. $timeStart = strtotime('05-01-2013');   // это веремя начала отсчета timestamp
  2. $rest = (36*3600) - ((time()-$timeStart)%(3600*36)); // а это оставшееся время до следующего 36 часового момента
  3. $limit = date('j F',$rest);


Но все равно не работает... Вернее $limit выводит 2 января теперь)
 
 Top
DlTA
Отправлено: 10 Августа, 2013 - 16:17:19
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




SharkNancy пишет:
а это оставшееся время

это не дата, это количество сколько секунд до следующей точки.
для получения точной даты нужно сделать
time()+$rest
 
 Top
SharkNancy
Отправлено: 10 Августа, 2013 - 16:28:07
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




DlTA пишет:
это не дата, это количество сколько секунд до следующей точки.
для получения точной даты нужно сделать
time()+$rest


А так очень даже работает! Большое спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB