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
Форумы портала PHP.SU :: Версия для печати :: Математические действия в PHP
Форумы портала PHP.SU » » Вопросы новичков » Математические действия в PHP

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

1. Jasper - 19 Сентября, 2012 - 05:06:47 - перейти к сообщению
Всем привет. Хотелось бы узнать, можно ли выполнять математические действия (умножение, сложение, деление, вычитание) в php через определённый промежуток времени?
К примеру по часам: Есть число 10 в 12 часов нужно прибавить 3, в 18 часов вычесть 5
Или через промежуток времени: Есть число 10, через 30 минут надо прибавить 3, через 180 минут вычесть 5

Возможно ли такое? Если да, подскажите как сделать пожалуйста.
Спасибо.
2. likvidator - 19 Сентября, 2012 - 05:41:55 - перейти к сообщению
скорее всего : https://www[dot]google[dot]ru/search?q=nncron - поможет
3. Jasper - 19 Сентября, 2012 - 12:28:40 - перейти к сообщению
likvidator пишет:
скорее всего : https://www[dot]google[dot]ru/search?q=nncron - поможет

то есть средствами php этого добиться невозможно? Растерялся
4. mess - 19 Сентября, 2012 - 16:01:57 - перейти к сообщению
Jasper пишет:
likvidator пишет:
скорее всего : https://www[dot]google[dot]ru/search?q=nncron - поможет

то есть средствами php этого добиться невозможно? Растерялся


Cron или JavaScript (Timer)
5. Bartezz - 19 Сентября, 2012 - 16:32:42 - перейти к сообщению
Если только зайти от обратного.
1. Получить текущую дату (дату от которой начинать отчет)
2. Определить время когда произвести математические действия
3. При необходимо произвести расчет прошедшего времени (сколько раз необходимо было произвести прибавление, вычитание, добавление... да хоть что)

Если на php то как то так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $k=10;
  3.  
  4. $date="19.09.2012 12:00";
  5. // определяем кол-во минут прошедших с установленной даты до текущего момента
  6. $out_time = (time()-strtotime($date))/60;
  7.  
  8. // выполняем необходимые действия над переменной $k - каждый 30 минут прибавляем 3
  9. $k=floor($out_time/30)*3+$k;
  10.  
  11. // выполняем необходимые действия над переменной $k - каждый 180 минут вычитаем 5
  12. $k=$k-floor($out_time/180)*5;
  13. ?>


Примитивный пример как можно организовать такого рода процедуры, вызов нового значения, соответсвенно, при каждом вызове скрипта на сервере
6. NoPaper - 19 Сентября, 2012 - 16:46:13 - перейти к сообщению
Скрипт будет выполняться >180 минут?
Если да - без проблем, в замкнутом цикле проверять минуты и выполнять определенные действия.

Если нет, придется подключить cron, который через определенное будет обращаться к php скрипту.
7. Jasper - 19 Сентября, 2012 - 16:56:08 - перейти к сообщению
Bartezz пишет:
Если только зайти от обратного.
1. Получить текущую дату (дату от которой начинать отчет)
2. Определить время когда произвести математические действия
3. При необходимо произвести расчет прошедшего времени (сколько раз необходимо было произвести прибавление, вычитание, добавление... да хоть что)

Если на php то как то так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $k=10;
  3.  
  4. $date="19.09.2012 12:00";
  5. // определяем кол-во минут прошедших с установленной даты до текущего момента
  6. $out_time = (strtotime($date)-strtotime ("10.04.2012"))/60;
  7.  
  8. // выполняем необходимые действия над переменной $k - каждый 30 минут прибавляем 3
  9. $k=floor($out_time/30)*3+$k;
  10.  
  11. // выполняем необходимые действия над переменной $k - каждый 180 минут вычитаем 5
  12. $k=$k-floor($out_time/180)*5;
  13. ?>


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


огромное спсибо.после работы попробую. все доходчиво понятно обьяснили.как попробую отпишусь
8. Bartezz - 19 Сентября, 2012 - 17:54:44 - перейти к сообщению
Немного подправил код, так как торопился и написал не совсем то что надо=)
9. Jasper - 19 Сентября, 2012 - 18:44:58 - перейти к сообщению
Bartezz пишет:
Немного подправил код, так как торопился и написал не совсем то что надо=)

окей)) бывает) как раз хотел спросить зачем нужна дата 10.04.2012) а это и была ошибка)
(Добавление)
PHP:
скопировать код в буфер обмена
  1.     <?PHP
  2.     $k=10;
  3.      
  4.     $date="19.09.2012 12:00";
  5.     // определяем кол-во минут прошедших с установленной даты до текущего момента
  6.     $out_time = (time()-strtotime($date))/60;
  7.      
  8.     // выполняем необходимые действия над переменной $k - каждый 30 минут прибавляем 3
  9.     $k=floor($out_time/30)*3+$k;
  10.      
  11.     // выполняем необходимые действия над переменной $k - каждый 180 минут вычитаем 5
  12.     $k=$k-floor($out_time/180)*5;
  13.     ?>


Всё работает как и нужно, просто замечаельно) большое спасибо за помощь) Радость

 

Powered by ExBB FM 1.0 RC1