Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/46: Рейтинг темы: голосов - 46, средняя оценка - 4.63
3 / 3 / 4
Регистрация: 04.02.2013
Сообщений: 214

Таймер обратного отсчета

17.08.2014, 21:02. Показов 9277. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Стоит такая задача есть несколько ссылок у которых необходимо задать разное время их показа к примеру у одно ссылке один раз через каждые 30 мин после клика по ссылке, у другой к примеру через 15 мин. после клика по ссылке. Тесть при клике на ссылку, ссылка пропадет, а на ее вместо запускается таймер обратного от счета к примеру 00:30:00 она стает не доступна на это время только тому кто кликнул по ссылке. возможно данное действие записывать в таблицу и индифицировать по IP.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.08.2014, 21:02
Ответы с готовыми решениями:

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

Таймер обратного отсчета
Здравствуйте, прошу простить если не туда написал ( не тот топ)... Моя проблема заключается в том, есть код таймера обратного...

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

42
3 / 3 / 4
Регистрация: 04.02.2013
Сообщений: 214
20.08.2014, 17:30  [ТС]
Студворк — интернет-сервис помощи студентам
вот этот меня устраивает TIME но его бы как то переделать чтобы несколько таймеров работало
0
 Аватар для amadey18
92 / 92 / 51
Регистрация: 29.04.2013
Сообщений: 361
21.08.2014, 14:59
legio1milenium, Плод моего больного воображения смог сделать только это, и да простят меня за это гуру javascripta, и да прибудет с вами сила
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<html  xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="jquery-1.6.2.min.js"></script>
    <script type="text/javascript" src='jquery-1.8.2.js'></script>
 
    
</head>
 
<body>
 
 
<script type="text/javascript">
 
</script>
<p><span id="my_timer" style="color: #f00; font-size: 150%; font-weight: bold;">00:00:15</span></p>
<p><span id="my_timer2" style="color: #f00; font-size: 150%; font-weight: bold;">00:00:10</span></p>
<p><span id="my_timer3" style="color: #f00; font-size: 150%; font-weight: bold;">00:00:05</span></p>
 
<script type="text/javascript">
... скрипт 1
</script>
 
</body>
</html>
скрипт 1:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// задается список таймеров
var arr_fff = ["my_timer", "my_timer2", "my_timer3"];
 
// массив объектов таймеров
var arr_obj = [];
for (var i = 0; i < arr_fff.length; i++)
{
    var arr_is_down = new Object();
    arr_is_down["timer"] = arr_fff[i];   // название таймера
    arr_is_down["down"] = false;         // закончилось время или нет? true - закончился
    arr_obj[i] = arr_is_down;
}
console.log(arr_obj);
startTimer();
 
  function startTimer() {
    for (var i = 0; i < arr_obj.length; i++) // прогнать по всему массиву
    {
        if(arr_obj[i]["down"] == false) // если не закончился то вычитаем время
        {
            var my_timer = document.getElementById(arr_obj[i]["timer"]);
            var time = my_timer.innerHTML;
            var arr = time.split(":");
            var h = arr[0];
            var m = arr[1];
            var s = arr[2];
            if (s == 0) {
              if (m == 0) {
                if (h == 0) {
                  alert("Время вышло");
                  //window.location.reload();
                  arr_obj[i]["down"] = true; // когда закончился.
                  break;
                }
                h--;
                m = 60;
                if (h < 10) h = "0" + h;
              }
              m--;
              if (m < 10) m = "0" + m;
              s = 59;
            }
            else s--;
            if (s < 10) s = "0" + s;
            document.getElementById(arr_obj[i]["timer"]).innerHTML = h+":"+m+":"+s;
        }
    }
    setTimeout(startTimer, 1000);
  }
0
3 / 3 / 4
Регистрация: 04.02.2013
Сообщений: 214
21.08.2014, 16:18  [ТС]
объясни мне код Код HTML5 строка 14-16 что там должно быть и строка 21-23 тоже
0
 Аватар для amadey18
92 / 92 / 51
Регистрация: 29.04.2013
Сообщений: 361
21.08.2014, 17:16
legio1milenium, 14-16 лишнее, можете удалить, 21-23 - там находится код указанный между тегами JS, чуть ниже. Вставите в строки 21-23 js код указанный ниже слов "скрипт 1:" . Я разделил их что бы понятно было.
0
3 / 3 / 4
Регистрация: 04.02.2013
Сообщений: 214
21.08.2014, 23:19  [ТС]
у меня отсчет идет не коректно вместо отнимания 1 секунды отнимает по 2 секунда

Добавлено через 10 минут
с этим разобрался у меня было в body onload="startTimer() для другого таймера оно мешало коректной работте
подскажи а как сделать чтобы в
JavaScript
1
var arr_fff = ["my_timer", "my_timer2", "my_timer3"];
my_timer записывать автоматически с этим
HTML5
1
<p><span id="my_timer" style="color: #f00; font-size: 150%; font-weight: bold;">00:00:15</span>
пролем небуде с my_timer добалятся будет по мере вывода ID ссылки к примеру
HTML5
1
"my_timer<?=$row['id'];?>"
Добавлено через 2 часа 2 минуты
заметил что они между собой связаны если убрать хотябы один вывод таймера остальные не отсчитывают
HTML5
1
2
3
<p><span id="my_timer" style="color: #f00; font-size: 150%; font-weight: bold;">00:00:15</span></p>
<p><span id="my_timer2" style="color: #f00; font-size: 150%; font-weight: bold;">00:00:10</span></p>
<p><span id="my_timer3" style="color: #f00; font-size: 150%; font-weight: bold;">00:00:05</span></p>
можно ли като сделать что my_timer не зависили друг от друга та как может быть один таймер а может и 50 и если хоть одного не будет все стоять будут

Добавлено через 1 час 45 минут
все решил задачу не знаю на сколько правильно но но вроде работает как надо
Java
1
var arr_fff = [<? while($TestTime_JS  = mysqli_fetch_assoc($Time_JS)){$poot = '"my_timer'.$TestTime_JS['id'].'", ';echo $poot;} ?>];
0
 Аватар для amadey18
92 / 92 / 51
Регистрация: 29.04.2013
Сообщений: 361
22.08.2014, 09:15
таймеры выводить через php. Сколько таймеров пришло из базы, столько их и будет на странице. Такое же количество будет и в скрипте.
0
0 / 0 / 1
Регистрация: 08.01.2016
Сообщений: 95
08.01.2016, 07:15
Не понял до конца решение? Описать подробнее на примере двух и более таймеров можно?
0
3 / 3 / 4
Регистрация: 04.02.2013
Сообщений: 214
08.01.2016, 09:43  [ТС]
что именно не понятно
0
0 / 0 / 1
Регистрация: 08.01.2016
Сообщений: 95
08.01.2016, 10:28
Цитата Сообщение от legio1milenium Посмотреть сообщение
что именно не понятно
HTML5
1
var arr_fff = [<? while($TestTime_JS  = mysqli_fetch_assoc($Time_JS)){$poot = '"my_timer'.$TestTime_JS['id'].'", ';echo $poot;} ?>];
От куда и куда переменная $Time_JS? С базы что то тянет?
И собственно сам вывод таймеров. Желательно на готовом примере.
0
3 / 3 / 4
Регистрация: 04.02.2013
Сообщений: 214
08.01.2016, 12:17  [ТС]
первый вопрос сколько таймеров вам необходимо ? как откуда берете данные которые должен получить таймер ?
0
0 / 0 / 1
Регистрация: 08.01.2016
Сообщений: 95
08.01.2016, 12:24
4-штуки данные берутся из строк 80,146,210

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Бонусы";
$usid = $_SESSION["user_id"];
$uname = $_SESSION["user"];
 
$db->Query("SELECT referer, referer_id FROM ".$pref."_users_a WHERE id = '$usid' LIMIT 1");
$user_ardata = $db->FetchArray();
$refid = $user_ardata["referer_id"];
$refname = $user_ardata["referer"];
?>
<div class="s-bk-lf">
    <div class="acc-title">Бонусы</div>
</div>
<div class="silver-bk">
<div class="clr"></div> 
<center><font size="3">Ваш реферал получит 5% от вашей суммы бонуса. <br>Сама суммма бонуса у Вас не отнимается.</font><br> <br> </center>
<table border='0' cellpadding="3" cellspacing="3" align="center">
  <tr>
    <td align="center" class="m-tb1">
    <b><font size="4" color="green">Ежедневный </font></b><BR /><BR />
    Бонус выдется 1 раз в 24 часа. <BR />
Сумма бонуса генерируется случайно от <b><?=$bonus_min;?></b> до <b><?=$bonus_max;?></b> серебра.
<BR /><BR />
<?PHP
$ddel = time() + 60*60*24;
$dadd = time();
$db->Query("SELECT COUNT(*) FROM ".$pref."_bonus_list WHERE user_id = '$usid' AND date_del > '$dadd'");
 
$hide_form = false;
 
    if($db->FetchRow() == 0){
    
        # Выдача бонуса
        if(isset($_POST["bonus"])){
        
            $sum = rand($bonus_min, $bonus_max);
            $sumref = $sum*0.05;
            # Зачилсяем юзверю
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sum' WHERE id = '$usid'");
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sumref' WHERE id = '$refid'");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$usid','$uname', 'Бонус', 'Ежедневный', '$sum', 'Покупки', '$dadd')");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$refid','$refname', 'Бонус', 'Реферальные', '$sumref', 'Покупки', '$dadd')");
            # Вносим запись в список бонусов
            
            
            $db->Query("INSERT INTO ".$pref."_bonus_list (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')");
            
 
            
            echo "<center><font color = 'green'><b>На Ваш счет для покупок зачислен бонус в размере {$sum} серебра.</b></font></center><BR />";
            
            $hide_form = true;
            
        }
            
            # Показывать или нет форму
            if(!$hide_form){
?>
 
<form action="" method="post">
<input type="submit" name="bonus" value="Получить" style="width: 90px; height: 30px; margin-top:10px;">
 
</form>
 
<?PHP 
 
            }
 
    }else {
$db->Query("SELECT * FROM ".$pref."_bonus_list WHERE user_id = '$usid' order by ID DESC limit 1");
$u_data = $db->FetchArray();
$time = $u_data['date_del'] - $dadd;
$hours = floor($time/3600);
floor($minutes =($time/3600 - $hours)*60);
$seconds = ceil(($minutes - floor($minutes))*60);
$min=ceil($minutes)-1;
 
//echo $data['sec'] - time().' сек.';
//echo "<b>$hours:$min:$seconds</font></b>";
echo "<center><font color = 'red'>$hours:$min:$seconds</font></center><BR />";
 
} ?><br></td>
 
    <td align="center" class="m-tb1">
    <b><font size="4" color="green">Каждый час </font></b><BR /><BR />
Бонус выдется 1 раз в час. <BR />
Сумма бонуса генерируется случайно от <b><?=$bonus_min1;?></b> до <b><?=$bonus_max1;?></b> серебра.
<BR /><BR />
<?PHP
$ddel = time() + 60*60;
$dadd = time();
$db->Query("SELECT COUNT(*) FROM ".$pref."_bonus_list1 WHERE user_id = '$usid' AND date_del > '$dadd'");
 
$hide_form = false;
 
    if($db->FetchRow() == 0){
    
        # Выдача бонуса
        if(isset($_POST["bonus1"])){
        
            $sum = rand($bonus_min1, $bonus_max1);
            $sumref = $sum*0.05;
            # Зачилсяем юзверю
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sum' WHERE id = '$usid'");
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sumref' WHERE id = '$refid'");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$usid','$uname', 'Бонус', 'Каждый час', '$sum', 'Покупки', '$dadd')");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$refid','$refname', 'Бонус', 'Реферальные', '$sumref', 'Покупки', '$dadd')");
            # Вносим запись в список бонусов
            
            
            $db->Query("INSERT INTO ".$pref."_bonus_list1 (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')");
            
 
            
            echo "<center><font color = 'green'><b>На Ваш счет для покупок зачислен бонус в размере {$sum} серебра.</b></font></center><BR />";
            
            $hide_form = true;
            
        }
            
            # Показывать или нет форму
            if(!$hide_form){
?>
 
<form action="" method="post">
<input type="submit" name="bonus1" value="Получить" style="width: 90px;height: 30px; margin-top:10px;">
 
</form>
 
<?PHP 
 
            }
 
    }else 
{
$db->Query("SELECT * FROM ".$pref."_bonus_list1 WHERE user_id = '$usid' order by ID DESC limit 1");
$u_data = $db->FetchArray();
$time = $u_data['date_del'] - $dadd;
$hours = floor($time/3600);
floor($minutes =($time/3600 - $hours)*60);
$seconds = ceil(($minutes - floor($minutes))*60);
$min=ceil($minutes)-1;
 
//echo $data['sec'] - time().' сек.';
//echo "<b>$hours:$min:$seconds</font></b>";
echo "<center><font color = 'red'>$hours:$min:$seconds</font></center><BR />";
 
}       ?><br></td>
    <td align="center" class="m-tb1">
    <b><font size="4" color="green" >10 минут</font></b><BR /><BR />
    Бонус выдется 1 раз в 10 минут. <BR />
Сумма бонуса генерируется случайно от <b><?=$bonus_min2;?></b> до <b><?=$bonus_max2;?></b> серебра.
<BR /><BR />
<?PHP
$ddel = time() + 60*10;
$dadd = time();
$db->Query("SELECT COUNT(*) FROM ".$pref."_bonus_list2 WHERE user_id = '$usid' AND date_del > '$dadd'");
 
$hide_form = false;
 
    if($db->FetchRow() == 0){
    
        # Выдача бонуса
        if(isset($_POST["bonus2"])){
        
            $sum = rand($bonus_min2, $bonus_max2);
            $sumref = $sum*0.05;
            # Зачилсяем юзверю
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sum' WHERE id = '$usid'");
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sumref' WHERE id = '$refid'");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$usid','$uname', 'Бонус', '10 минут', '$sum', 'Покупки', '$dadd')");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$refid','$refname', 'Бонус', 'Реферальные', '$sumref', 'Покупки', '$dadd')");
            # Вносим запись в список бонусов
            
            
            $db->Query("INSERT INTO ".$pref."_bonus_list2 (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')");
            
 
            
            echo "<center><font color = 'green'><b>На Ваш счет для покупок зачислен бонус в размере {$sum} серебра.</b></font></center><BR />";
            
            $hide_form = true;
            
        }
            
            # Показывать или нет форму
            if(!$hide_form){
?>
<form action="" method="post">
<input type="submit" name="bonus2" value="Получить" style="width: 90px;height: 30px; margin-top:10px;">
 
</form>
 
<?PHP 
 
            }
 
    }else 
        {
$db->Query("SELECT * FROM ".$pref."_bonus_list2 WHERE user_id = '$usid' order by ID DESC limit 1");
$u_data = $db->FetchArray();
$time = $u_data['date_del'] - $dadd;
$hours = floor($time/3600);
floor($minutes =($time/3600 - $hours)*60);
$seconds = ceil(($minutes - floor($minutes))*60);
$min=ceil($minutes)-1;
 
//echo $data['sec'] - time().' сек.';
//echo "<b>$hours:$min:$seconds</font></b>";
echo "<center><font color = 'red'>$hours:$min:$seconds</font></center><BR />";
 
}?><br></td>
  </tr>
  
        <tr>
            <td align="center"><table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td align="center" class="m-tb">Игрок</td>
    <td align="center" class="m-tb">Сумма</td>
  </tr>
  <?PHP
  
  $db->Query("SELECT * FROM ".$pref."_bonus_list ORDER BY id DESC LIMIT 10");
  
    if($db->NumRows() > 0){
  
        while($bon = $db->FetchArray()){
        
        ?>
        <tr class="htt">
            <td align="center"><?=$bon["user"]; ?></td>
            <td align="center"><?=$bon["sum"]; ?></td>
        </tr>
        <?PHP
        
        }
  
    }else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'
  ?>
 
  
</table></td>
            <td align="center"><table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td align="center" class="m-tb">Игрок</td>
    <td align="center" class="m-tb">Сумма</td>
  </tr>
  <?PHP
  
  $db->Query("SELECT * FROM ".$pref."_bonus_list1 ORDER BY id DESC LIMIT 10");
  
    if($db->NumRows() > 0){
  
        while($bon = $db->FetchArray()){
        
        ?>
        <tr class="htt">
            <td align="center"><?=$bon["user"]; ?></td>
            <td align="center"><?=$bon["sum"]; ?></td>
        </tr>
        <?PHP
        
        }
  
    }else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'
  ?>
 
  
</table></td>
<td align="center"><table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td align="center" class="m-tb">Игрок</td>
    <td align="center" class="m-tb">Сумма</td>
 
  </tr>
  <?PHP
  
  $db->Query("SELECT * FROM ".$pref."_bonus_list2 ORDER BY id DESC LIMIT 10");
  
    if($db->NumRows() > 0){
  
        while($bon = $db->FetchArray()){
        
        ?>
        <tr class="htt">
 
            <td align="center"><?=$bon["user"]; ?></td>
            <td align="center"><?=$bon["sum"]; ?></td>
        </tr>
        <?PHP
        
        }
  
    }else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'
  ?>
 
  
</table></td>
        </tr>
</table>
0
3 / 3 / 4
Регистрация: 04.02.2013
Сообщений: 214
08.01.2016, 12:32  [ТС]
$Time_JS это запрос к необходимой теблице к примеру
PHP
1
 $Time_JS = "SELECT * FROM `time` "
Добавлено через 1 минуту
судя по коду бонус на ФФ делаете

Добавлено через 3 минуты
говорите 4 штуки а данные толко в 3 местах берутся

Добавлено через 3 минуты
попробуй так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
<script>
// задается список таймеров
var arr_fff = ["my_timer", "my_timer2", "my_timer3"];
 
// массив объектов таймеров
var arr_obj = [];
for (var i = 0; i < arr_fff.length; i++)
{
    var arr_is_down = new Object();
    arr_is_down["timer"] = arr_fff[i];   // название таймера
    arr_is_down["down"] = false;         // закончилось время или нет? true - закончился
    arr_obj[i] = arr_is_down;
}
console.log(arr_obj);
startTimer();
 
  function startTimer() {
    for (var i = 0; i < arr_obj.length; i++) // прогнать по всему массиву
    {
        if(arr_obj[i]["down"] == false) // если не закончился то вычитаем время
        {
            var my_timer = document.getElementById(arr_obj[i]["timer"]);
            var time = my_timer.innerHTML;
            var arr = time.split(":");
            var h = arr[0];
            var m = arr[1];
            var s = arr[2];
            if (s == 0) {
              if (m == 0) {
                if (h == 0) {
                  alert("Время вышло");
                  //window.location.reload();
                  arr_obj[i]["down"] = true; // когда закончился.
                  break;
                }
                h--;
                m = 60;
                if (h < 10) h = "0" + h;
              }
              m--;
              if (m < 10) m = "0" + m;
              s = 59;
            }
            else s--;
            if (s < 10) s = "0" + s;
            document.getElementById(arr_obj[i]["timer"]).innerHTML = h+":"+m+":"+s;
        }
    }
    setTimeout(startTimer, 1000);
  }
</script>
 
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Бонусы";
$usid = $_SESSION["user_id"];
$uname = $_SESSION["user"];
 
$db->Query("SELECT referer, referer_id FROM ".$pref."_users_a WHERE id = '$usid' LIMIT 1");
$user_ardata = $db->FetchArray();
$refid = $user_ardata["referer_id"];
$refname = $user_ardata["referer"];
?>
<div class="s-bk-lf">
    <div class="acc-title">Бонусы</div>
</div>
<div class="silver-bk">
<div class="clr"></div> 
<center><font size="3">Ваш реферал получит 5% от вашей суммы бонуса. <br>Сама суммма бонуса у Вас не отнимается.</font><br> <br> </center>
<table border='0' cellpadding="3" cellspacing="3" align="center">
  <tr>
    <td align="center" class="m-tb1">
    <b><font size="4" color="green">Ежедневный </font></b><BR /><BR />
    Бонус выдется 1 раз в 24 часа. <BR />
Сумма бонуса генерируется случайно от <b><?=$bonus_min;?></b> до <b><?=$bonus_max;?></b> серебра.
<BR /><BR />
<?PHP
$ddel = time() + 60*60*24;
$dadd = time();
$db->Query("SELECT COUNT(*) FROM ".$pref."_bonus_list WHERE user_id = '$usid' AND date_del > '$dadd'");
 
$hide_form = false;
 
    if($db->FetchRow() == 0){
    
        # Выдача бонуса
        if(isset($_POST["bonus"])){
        
            $sum = rand($bonus_min, $bonus_max);
            $sumref = $sum*0.05;
            # Зачилсяем юзверю
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sum' WHERE id = '$usid'");
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sumref' WHERE id = '$refid'");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$usid','$uname', 'Бонус', 'Ежедневный', '$sum', 'Покупки', '$dadd')");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$refid','$refname', 'Бонус', 'Реферальные', '$sumref', 'Покупки', '$dadd')");
            # Вносим запись в список бонусов
            
            
            $db->Query("INSERT INTO ".$pref."_bonus_list (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')");
            
 
            
            echo "<center><font color = 'green'><b>На Ваш счет для покупок зачислен бонус в размере {$sum} серебра.</b></font></center><BR />";
            
            $hide_form = true;
            
        }
            
            # Показывать или нет форму
            if(!$hide_form){
?>
 
<form action="" method="post">
<input type="submit" name="bonus" value="Получить" style="width: 90px; height: 30px; margin-top:10px;">
 
</form>
 
<?PHP 
 
            }
 
    }else {
$db->Query("SELECT * FROM ".$pref."_bonus_list WHERE user_id = '$usid' order by ID DESC limit 1");
$u_data = $db->FetchArray();
$time = $u_data['date_del'] - $dadd;
$hours = floor($time/3600);
floor($minutes =($time/3600 - $hours)*60);
$seconds = ceil(($minutes - floor($minutes))*60);
$min=ceil($minutes)-1;
 
//echo $data['sec'] - time().' сек.';
//echo "<b>$hours:$min:$seconds</font></b>";
echo "<center><font id='my_timer' color = 'red'>$hours:$min:$seconds</font></center><BR />";
 
} ?><br></td>
 
    <td align="center" class="m-tb1">
    <b><font size="4" color="green">Каждый час </font></b><BR /><BR />
Бонус выдется 1 раз в час. <BR />
Сумма бонуса генерируется случайно от <b><?=$bonus_min1;?></b> до <b><?=$bonus_max1;?></b> серебра.
<BR /><BR />
<?PHP
$ddel = time() + 60*60;
$dadd = time();
$db->Query("SELECT COUNT(*) FROM ".$pref."_bonus_list1 WHERE user_id = '$usid' AND date_del > '$dadd'");
 
$hide_form = false;
 
    if($db->FetchRow() == 0){
    
        # Выдача бонуса
        if(isset($_POST["bonus1"])){
        
            $sum = rand($bonus_min1, $bonus_max1);
            $sumref = $sum*0.05;
            # Зачилсяем юзверю
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sum' WHERE id = '$usid'");
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sumref' WHERE id = '$refid'");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$usid','$uname', 'Бонус', 'Каждый час', '$sum', 'Покупки', '$dadd')");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$refid','$refname', 'Бонус', 'Реферальные', '$sumref', 'Покупки', '$dadd')");
            # Вносим запись в список бонусов
            
            
            $db->Query("INSERT INTO ".$pref."_bonus_list1 (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')");
            
 
            
            echo "<center><font color = 'green'><b>На Ваш счет для покупок зачислен бонус в размере {$sum} серебра.</b></font></center><BR />";
            
            $hide_form = true;
            
        }
            
            # Показывать или нет форму
            if(!$hide_form){
?>
 
<form action="" method="post">
<input type="submit" name="bonus1" value="Получить" style="width: 90px;height: 30px; margin-top:10px;">
 
</form>
 
<?PHP 
 
            }
 
    }else 
{
$db->Query("SELECT * FROM ".$pref."_bonus_list1 WHERE user_id = '$usid' order by ID DESC limit 1");
$u_data = $db->FetchArray();
$time = $u_data['date_del'] - $dadd;
$hours = floor($time/3600);
floor($minutes =($time/3600 - $hours)*60);
$seconds = ceil(($minutes - floor($minutes))*60);
$min=ceil($minutes)-1;
 
//echo $data['sec'] - time().' сек.';
//echo "<b>$hours:$min:$seconds</font></b>";
echo "<center><font id='my_timer2' color = 'red'>$hours:$min:$seconds</font></center><BR />";
 
}       ?><br></td>
    <td align="center" class="m-tb1">
    <b><font size="4" color="green" >10 минут</font></b><BR /><BR />
    Бонус выдется 1 раз в 10 минут. <BR />
Сумма бонуса генерируется случайно от <b><?=$bonus_min2;?></b> до <b><?=$bonus_max2;?></b> серебра.
<BR /><BR />
<?PHP
$ddel = time() + 60*10;
$dadd = time();
$db->Query("SELECT COUNT(*) FROM ".$pref."_bonus_list2 WHERE user_id = '$usid' AND date_del > '$dadd'");
 
$hide_form = false;
 
    if($db->FetchRow() == 0){
    
        # Выдача бонуса
        if(isset($_POST["bonus2"])){
        
            $sum = rand($bonus_min2, $bonus_max2);
            $sumref = $sum*0.05;
            # Зачилсяем юзверю
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sum' WHERE id = '$usid'");
            $db->Query("UPDATE ".$pref."_users_b SET money_b = money_b + '$sumref' WHERE id = '$refid'");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$usid','$uname', 'Бонус', '10 минут', '$sum', 'Покупки', '$dadd')");
            $db->Query("INSERT INTO ".$pref."_history (user_id, user, opisanie, tip, summa, schet, date_add) VALUES ('$refid','$refname', 'Бонус', 'Реферальные', '$sumref', 'Покупки', '$dadd')");
            # Вносим запись в список бонусов
            
            
            $db->Query("INSERT INTO ".$pref."_bonus_list2 (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')");
            
 
            
            echo "<center><font color = 'green'><b>На Ваш счет для покупок зачислен бонус в размере {$sum} серебра.</b></font></center><BR />";
            
            $hide_form = true;
            
        }
            
            # Показывать или нет форму
            if(!$hide_form){
?>
<form action="" method="post">
<input type="submit" name="bonus2" value="Получить" style="width: 90px;height: 30px; margin-top:10px;">
 
</form>
 
<?PHP 
 
            }
 
    }else 
        {
$db->Query("SELECT * FROM ".$pref."_bonus_list2 WHERE user_id = '$usid' order by ID DESC limit 1");
$u_data = $db->FetchArray();
$time = $u_data['date_del'] - $dadd;
$hours = floor($time/3600);
floor($minutes =($time/3600 - $hours)*60);
$seconds = ceil(($minutes - floor($minutes))*60);
$min=ceil($minutes)-1;
 
//echo $data['sec'] - time().' сек.';
//echo "<b>$hours:$min:$seconds</font></b>";
echo "<center><font id='my_timer' color = 'red'>$hours:$min:$seconds</font></center><BR />";
 
}?><br></td>
  </tr>
  
        <tr>
            <td align="center"><table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td align="center" class="m-tb">Игрок</td>
    <td align="center" class="m-tb">Сумма</td>
  </tr>
  <?PHP
  
  $db->Query("SELECT * FROM ".$pref."_bonus_list ORDER BY id DESC LIMIT 10");
  
    if($db->NumRows() > 0){
  
        while($bon = $db->FetchArray()){
        
        ?>
        <tr class="htt">
            <td align="center"><?=$bon["user"]; ?></td>
            <td align="center"><?=$bon["sum"]; ?></td>
        </tr>
        <?PHP
        
        }
  
    }else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'
  ?>
 
  
</table></td>
            <td align="center"><table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td align="center" class="m-tb">Игрок</td>
    <td align="center" class="m-tb">Сумма</td>
  </tr>
  <?PHP
  
  $db->Query("SELECT * FROM ".$pref."_bonus_list1 ORDER BY id DESC LIMIT 10");
  
    if($db->NumRows() > 0){
  
        while($bon = $db->FetchArray()){
        
        ?>
        <tr class="htt">
            <td align="center"><?=$bon["user"]; ?></td>
            <td align="center"><?=$bon["sum"]; ?></td>
        </tr>
        <?PHP
        
        }
  
    }else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'
  ?>
 
  
</table></td>
<td align="center"><table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td align="center" class="m-tb">Игрок</td>
    <td align="center" class="m-tb">Сумма</td>
 
  </tr>
  <?PHP
  
  $db->Query("SELECT * FROM ".$pref."_bonus_list2 ORDER BY id DESC LIMIT 10");
  
    if($db->NumRows() > 0){
  
        while($bon = $db->FetchArray()){
        
        ?>
        <tr class="htt">
 
            <td align="center"><?=$bon["user"]; ?></td>
            <td align="center"><?=$bon["sum"]; ?></td>
        </tr>
        <?PHP
        
        }
  
    }else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'
  ?>
 
  
</table></td>
        </tr>
</table>
0
0 / 0 / 1
Регистрация: 08.01.2016
Сообщений: 95
08.01.2016, 12:39
Цитата Сообщение от legio1milenium Посмотреть сообщение
судя по коду бонус на ФФ делаете
Да для нее. Так я уже делал и если брать один бонус, то таймер не отсчитывает, если взять все три то все идет нормально. 4-й бонус не влез т.к разрешено не более 15к символов. Сейчас буду пробовать с выборкой.
0
3 / 3 / 4
Регистрация: 04.02.2013
Сообщений: 214
08.01.2016, 12:56  [ТС]
для того чтобы один работал надо в
HTML5
1
var arr_fff = ["my_timer", "my_timer2", "my_timer3"];
только одно значение оставить
потому и я делал чтобы в нем было согласно таблици
HTML5
1
2
3
    
 
var arr_fff = [<? while($TestTime_JS  = mysqli_fetch_assoc($Time_JS)){$poot = '"my_timer'.$TestTime_JS['id'].'", ';echo $poot;} ?>];
Добавлено через 3 минуты
ща переделаю
0
0 / 0 / 1
Регистрация: 08.01.2016
Сообщений: 95
08.01.2016, 13:03
Цитата Сообщение от legio1milenium Посмотреть сообщение
ща переделаю
В этом и загвоздка что надо что бы 4-ре работали не зависимо друг от друга. Пытаюсь подстроить, но работает только 1 другие стоят.
0
3 / 3 / 4
Регистрация: 04.02.2013
Сообщений: 214
08.01.2016, 13:03  [ТС]
я так понял все хранится в одной таблице от всехе бонусов что 24 часа что 1 час
0
0 / 0 / 1
Регистрация: 08.01.2016
Сообщений: 95
08.01.2016, 13:07
Нет на каждый бонус отдельная таблица
0
3 / 3 / 4
Регистрация: 04.02.2013
Сообщений: 214
08.01.2016, 13:11  [ТС]
весь файл кинь на яндекс диск
0
0 / 0 / 1
Регистрация: 08.01.2016
Сообщений: 95
08.01.2016, 13:13
https://yadi.sk/d/MNBScHM_mjqin
0
3 / 3 / 4
Регистрация: 04.02.2013
Сообщений: 214
08.01.2016, 14:32  [ТС]
качай и проверяй качай и проверяй я не проверял так как нет таблиц и остального если че можно будет через тайм вивер зайти к тебе и посмотреть че как там

Добавлено через 18 минут
немного переделал Скачать
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2016, 14:32

Таймер обратного отсчета с cookie
Ребята весь интернет перелопатил и ничего не нашёл. Последняя надежда на вас) Я хочу научиться реализовать таймер обратного отсчета на...

Таймер обратного отсчета на PHP
Здравствуйте, почитал различные темы на форуме, но ответа для своего случая так и не нашел. Отсюда вопросик: Есть дата наступления...

Таймер обратного отсчета с редактированием времени
Здравствуйте, пробую написать код таймера на ХТМЛ и ПХП, что бы таймер допустим шел от 3 дней 12 часов и 17 сек до нуля. Но пока он...

Таймер обратного отсчёта(событие по таймеру)
Здравствуйте, может кто подсказать как реализовать такое?В общем нужен таймер обратного отсчёта, по прошествии какого-то времени(одна...

Создать таймер обратного отсчета без привязки к клиенту
Здраствуйте задача создать/найти таймер который не будет привязан к браузеру пользевателя время уменьшалось даже когда сайт не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энергоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерированы
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru