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 :: Ежедневное увеличение числа на 1

 PHP.SU

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


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

> Описание: Как сделать ежедневное увеличение числа на 1?
Semivan
Отправлено: 19 Апреля, 2016 - 09:32:20
Post Id



Новичок


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


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




Например число 200
Как сделать так чтоб, каждый день, это число 200, увеличивалось на 1?
 
 Top
Строитель Модератор
Отправлено: 19 Апреля, 2016 - 11:12:00
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Semivan пишет:
Как сделать так чтоб, каждый день, это число 200, увеличивалось на 1?
Я думал, что код получится по-меньше, но вышло то, что вышло. Может быть это и не совсем то, что нужно, т.к. возможно ещё потребуется запускать скрипт по расписанию...
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $file = 'file.txt';
  4. $timestamp = time();
  5.  
  6. if (!file_exists($file)) {
  7.     $str = 200 .'|'. $timestamp;
  8.     file_put_contents($file, serialize($str));
  9. }
  10.  
  11. list($int, $time) = explode('|', $str);
  12.  
  13. if (($time + 3600 * 24) < $timestamp) {
  14.     $int += 1;
  15.     $str = $int .'|'. $timestamp;
  16.     file_put_contents($file, serialize($str));
  17.     header('Location: '. $_SERVER['PHP_SELF']);
  18.     exit;
  19. }
  20.  
  21. echo $int;
 
 Top
Semivan
Отправлено: 20 Апреля, 2016 - 12:06:51
Post Id



Новичок


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


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




Строитель пишет:
Semivan пишет:
Как сделать так чтоб, каждый день, это число 200, увеличивалось на 1?
Я думал, что код получится по-меньше, но вышло то, что вышло. Может быть это и не совсем то, что нужно, т.к. возможно ещё потребуется запускать скрипт по расписанию...
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $file = 'file.txt';
  4. $timestamp = time();
  5.  
  6. if (!file_exists($file)) {
  7.     $str = 200 .'|'. $timestamp;
  8.     file_put_contents($file, serialize($str));
  9. }
  10.  
  11. list($int, $time) = explode('|', $str);
  12.  
  13. if (($time + 3600 * 24) < $timestamp) {
  14.     $int += 1;
  15.     $str = $int .'|'. $timestamp;
  16.     file_put_contents($file, serialize($str));
  17.     header('Location: '. $_SERVER['PHP_SELF']);
  18.     exit;
  19. }
  20.  
  21. echo $int;


Что такое file.txt и что в нем должно быть?
 
 Top
Строитель Модератор
Отправлено: 20 Апреля, 2016 - 14:03:45
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Semivan пишет:
Что такое file.txt и что в нем должно быть?
Это имя текстового файла, который будет создан при запуске скрипта. В этот файл будет вестись запись числа (200++) и времени (24-е часа, сутки), по истечении которого число будет увеличено на 1-цу. Если смущает имя текстового файла, то можете заменить строку
на строку
PHP:
скопировать код в буфер обмена
  1. $file = basename(__FILE__, '.'. pathinfo(__FILE__, PATHINFO_EXTENSION)) .'.txt';
  2.  

И тогда будет создан текстовый файл, имя которого будет совпадать с именем php-файла, в котором вы сохраните этот код.
 
 Top
Semivan
Отправлено: 22 Апреля, 2016 - 08:36:35
Post Id



Новичок


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


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




Строитель пишет:
Semivan пишет:
Как сделать так чтоб, каждый день, это число 200, увеличивалось на 1?
Я думал, что код получится по-меньше, но вышло то, что вышло. Может быть это и не совсем то, что нужно, т.к. возможно ещё потребуется запускать скрипт по расписанию...
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $file = 'file.txt';
  4. $timestamp = time();
  5.  
  6. if (!file_exists($file)) {
  7.     $str = 200 .'|'. $timestamp;
  8.     file_put_contents($file, serialize($str));
  9. }
  10.  
  11. list($int, $time) = explode('|', $str);
  12.  
  13. if (($time + 3600 * 24) < $timestamp) {
  14.     $int += 1;
  15.     $str = $int .'|'. $timestamp;
  16.     file_put_contents($file, serialize($str));
  17.     header('Location: '. $_SERVER['PHP_SELF']);
  18.     exit;
  19. }
  20.  
  21. echo $int;


Вчера вставил этот код (вот так скопировал и вставил Улыбка ), число 200 так и осталось. Я чтото пропустил?

Так секунду, число должно обновится по истечению 24 часа?

(Отредактировано автором: 22 Апреля, 2016 - 10:35:04)

 
 Top
Строитель Модератор
Отправлено: 22 Апреля, 2016 - 13:45:16
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Semivan пишет:
число должно обновится по истечению 24 часа?
Да. Но есть одно но - само по себе число не обновится. Иначе говоря, если завтра в это же время(или позже него) вы обратитесь из браузера к файлу, в котором сохранён этот код, то число увеличится на 1. Если спустя сутки(и более) вы снова обратитесь к этому файлу - число снова увеличится на 1.
 
 Top
andrewkard
Отправлено: 22 Апреля, 2016 - 14:59:45
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


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




Можно еще так:
PHP:
скопировать код в буфер обмена
  1. $from = mktime(0,0,0, '04', '21', '2016');
  2. $sum = 200;
  3. $midnight = mktime(0,0,0, date('m'), date('d'), date('Y'));
  4. echo ($midnight-$from)/86400 * $sum;
  5.  

(Отредактировано автором: 22 Апреля, 2016 - 15:04:36)

 
 Top
Semivan
Отправлено: 22 Апреля, 2016 - 16:26:38
Post Id



Новичок


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


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




andrewkard пишет:
Можно еще так:
PHP:
скопировать код в буфер обмена
  1. $from = mktime(0,0,0, '04', '21', '2016');
  2. $sum = 200;
  3. $midnight = mktime(0,0,0, date('m'), date('d'), date('Y'));
  4. echo ($midnight-$from)/86400 * $sum;
  5.  


А вопрос. Если я хочу увеличивать число на 2,3 или более, то куда вносить изменения?
 
 Top
andrewkard
Отправлено: 22 Апреля, 2016 - 16:31:29
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


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




Я не правильно понял, я сделал увеличение на эту сумму, т.е. 200, 400, и т.д.
Вот тут

у Вас будет 1,2,3,4,5, и т.д.

Далее как душа пожелает, для увеличение суммы на 1 каждый день поставьте так:
echo ($midnight-$from)/86400 + $sum;
 
 Top
Semivan
Отправлено: 22 Апреля, 2016 - 16:34:28
Post Id



Новичок


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


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




Строитель пишет:
Semivan пишет:
число должно обновится по истечению 24 часа?
Да. Но есть одно но - само по себе число не обновится. Иначе говоря, если завтра в это же время(или позже него) вы обратитесь из браузера к файлу, в котором сохранён этот код, то число увеличится на 1. Если спустя сутки(и более) вы снова обратитесь к этому файлу - число снова увеличится на 1.


ура число обновилось по истечению 24 часа! но я не понимаю что значит "обратится к фалу и число снова обновится"?

или понял?! там мне и нужно чтоб каждый день число обновлялось до бесконечности 201,202, 203 и т д. или я не понял всетаки?
(Добавление)
andrewkard пишет:
Я не правильно понял, я сделал увеличение на эту сумму, т.е. 200, 400, и т.д.
Вот тут

у Вас будет 1,2,3,4,5, и т.д.

Далее как душа пожелает, для увеличение суммы на 1 каждый день поставьте так:
echo ($midnight-$from)/86400 + $sum;


так секунду, а ну отредактируйте полный код например на число "3". я сравню какая разница, а то я не шарю.
(Добавление)
Semivan пишет:
Строитель пишет:
Semivan пишет:
число должно обновится по истечению 24 часа?
Да. Но есть одно но - само по себе число не обновится. Иначе говоря, если завтра в это же время(или позже него) вы обратитесь из браузера к файлу, в котором сохранён этот код, то число увеличится на 1. Если спустя сутки(и более) вы снова обратитесь к этому файлу - число снова увеличится на 1.


ура число обновилось по истечению 24 часа! но я не понимаю что значит "обратится к фалу и число снова обновится"?

или понял?! там мне и нужно чтоб каждый день число обновлялось до бесконечности 201,202, 203 и т д. или я не понял всетаки?
(Добавление)
andrewkard пишет:
Я не правильно понял, я сделал увеличение на эту сумму, т.е. 200, 400, и т.д.
Вот тут

у Вас будет 1,2,3,4,5, и т.д.

Далее как душа пожелает, для увеличение суммы на 1 каждый день поставьте так:
echo ($midnight-$from)/86400 + $sum;



Или понял, 86400 это 1 день, если мне нужен шаг в 3 дня то получается 259200? верно или нет?

(Отредактировано автором: 22 Апреля, 2016 - 16:54:13)

 
 Top
Строитель Модератор
Отправлено: 22 Апреля, 2016 - 20:57:50
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Semivan пишет:
что значит "обратится к фалу...
Это значит - запустить его в браузере
 
 Top
andrewkard
Отправлено: 23 Апреля, 2016 - 15:48:00
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


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




Semivan пишет:
86400 это 1 день, если мне нужен шаг в 3 дня то получается 259200

да
 
 Top
Semivan
Отправлено: 23 Апреля, 2016 - 22:06:02
Post Id



Новичок


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


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




andrewkard пишет:
да


А можна в функции mktime поменять местами день и месяц
вот так: mktime(0,0,0, '21', '04', '2016');?
 
 Top
kuller
Отправлено: 23 Апреля, 2016 - 22:29:29
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


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




Semivan пишет:
andrewkard пишет:
да


А можна в функции mktime поменять местами день и месяц
вот так: mktime(0,0,0, '21', '04', '2016');?


нет. Если надо отобразить дату на странице в нормальном виде, тогда можно изменить формат вывода

 
 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