Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для Le1b
5 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 63

Создание таймера с выводом времени

15.01.2013, 16:57. Показов 2574. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
навеяло отсюда Принцип создания браузерной игры

читал читал, в итоге все равно не понял как сделать таймер. Вот какой код у меня сейчас
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
include('inc/db_fns.php');
$i = '<br />';
$connect = db_connect();
function selectTime($connect) {
    $sql = mysql_query("SELECT * FROM time WHERE id='4'", $connect);
    $sql = mysql_fetch_array($sql);
    $endtime = $sql['datetime'];
    
    if($endtime <= 0) {
        addTime($connect);
    }
    else {
        return $endtime;
    }
}
function addTime($connect) {
    $date = time();
    $date = getdate($date);
     
    $year = $date['year'];
    $month = $date['mon'];
    $day = $date['mday'];
    $hours = $date['hours'];
    $minutes = $date['minutes'] + 15;
    $seconds = $date['seconds'];  
     
    $endtime = mktime($hours,$minutes,$seconds,$month,$day,$year);
    mysql_query("UPDATE time SET datetime='$endtime' WHERE id='4'", $connect);
    
    echo date("d-m-Y H:i:s", $endtime);
    return $endtime;
}
$endtime = selectTime($connect);
echo $endtime.$i;
$nowtime = time();
echo $nowtime.$i;
$res = $endtime - $nowtime;
echo $res.$i;
//$res = date("d-m-Y H:i:s", $res);
//echo $res;
//$res = $endtime - $res;
echo strftime("Осталось %Y лет %m месяцев %d дней %H часов %M минут %S секунд", $res);
в браузере получается такое
1358254812
1358254248
564
Осталось 1970 лет 01 месяцев 01 дней 02 часов 09 минут 24 секунд

Как правильней вывести оставшиеся время? А не так как у меня, 1970 лет )))))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2013, 16:57
Ответы с готовыми решениями:

Настройка таймера времени
Получаю на сервере текущее время.Мне нужно вычесть из 24 часов текущее время и получить ,что осталось,24 часа- 1 час 30м 30с = 22 часа 30...

Запуск таймера с заданного времени
Имеем datatimepicker, в нем вручную вбиваем время, нажимаем кнопку старт, и в label по таймеру выводится timeofday - datetimepicker.value ...

Сохранение времени для таймера
Здравствуйте, создавая секундомер в Windows Forms,столкнулся с такой проблемой, что после нажатия кнопки Start время автоматически...

11
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
15.01.2013, 17:09
Цитата Сообщение от Le1b Посмотреть сообщение
PHP
1
2
3
4
5
6
7
$year = $date['year'];
* * $month = $date['mon'];
* * $day = $date['mday'];
* * $hours = $date['hours'];
* * $minutes = $date['minutes'] + 15;
* * $seconds = $date['seconds']; *
$endtime = mktime($hours,$minutes,$seconds,$month,$day,$year);
strtotime для кого придумывали ?)
0
 Аватар для Le1b
5 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 63
15.01.2013, 17:32  [ТС]
Что нарыл))) Я очередной нуб который хочет научиться кодингу на практике ))) Согласен c strtotime проще. Но проблему это не решает. Толкните в нужном направлении.
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
15.01.2013, 17:46
погоди , 1358254248 сейчас , закончится в 1358254812 , что через 564 секунды . Ну так элементраная математика - подели на 60 и получишь минуты и т.д.

Добавлено через 27 секунд

Не по теме:

эта тема никогда не умрет...

0
 Аватар для Le1b
5 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 63
15.01.2013, 18:04  [ТС]
В таком случает надо будет писать проверки? Если больше 60 сек то +1 минута, если больше 60 минут то +1 час, если больше 24 часов то +1 день и т.д. Не громозкий код получится?

Помозговавсделал вот так :

PHP
1
echo date("Y-m-d H:i:s", mktime(0,0,$res,0,0,0));
Впринципе работает но, проблема начинается свыше 24 часов, да и представление даты косячно выглядит.
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
15.01.2013, 18:16
Недавно писал функцию возврата разницы дат , можешь подпилить под себя
PHP
1
2
3
4
5
6
7
 function GetTimeDiff($date1 , $date2){
   $datetime1 = new DateTime($date1);
   $datetime2 = new DateTime($date2);
   $interval = $datetime1->diff($datetime2); 
   #нужный формат :
   return $interval->format('%Y-%m-%d %H:%i:%s');
 }
0
 Аватар для Le1b
5 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 63
15.01.2013, 18:27  [ТС]
Если честно то вот как я смотрел на Ваш код. Это ООП ??? Когда стоит учить ООП в рнр и стоит ли вообще?
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
15.01.2013, 18:35
Цитата Сообщение от Le1b Посмотреть сообщение
Это ООП
ну использую стандартные пхп классы
Цитата Сообщение от Le1b Посмотреть сообщение
Когда стоит учить ООП в рнр и стоит ли вообще?
ООП это подход а не набор готовых инструментов - Конечно стоит , сразу учите основы - пройдитесь по http://www.php.su/learnphp/phpoo/ проделывая примеры на практике .
что касаеться конкретно моего кода , вот мануал datetime классов http://lt1.php.net/manual/ru/class.datetime.php
0
 Аватар для Le1b
5 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 63
15.01.2013, 18:54  [ТС]
Написал вот такие функции, при вызове ф-ции transformedTime ей надо передать количество секунд. Работает как часики, результат работы в таком формате 22:48:54:, только как избавиться от " : " в конце секунд. Или может можно оптимизировать код?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function transformedTime($s) {
    for($m = 0; $s >= 60; $m++) {
        $s -= 60;
    }
    for($h = 0; $m >= 60; $h++) {
        $m -= 60;
    }
    for($d = 0; $h >= 24; $d++) {
        $h -= 24;
    }
    echo $s.' '.$m.' '.$h.' '.$d.'<br />';
    echo formatTime($d) . formatTime($h).formatTime($m).formatTime($s);
}
function formatTime($val) {
    if($val > 0) {
        echo $val.":";
    }
}
Спасибо за инфу, обязательно попробую Ваш метод и почитаю про ООП. Просто я в структурном кодинге слаб, а тут сразу ООП)
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.01.2013, 18:58
например так
PHP
1
echo rtrim(formatTime($d) . formatTime($h).formatTime($m).formatTime($s), ':');
Добавлено через 2 минуты
либо изменить функцию так
PHP
1
2
3
4
5
function formatTime($val, $point=false) {
    if($val > 0) {
        echo $val, (!$point?':':'');
    }
}
и вызов так
PHP
1
echo formatTime($d) . formatTime($h).formatTime($m).formatTime($s, true);
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
15.01.2013, 18:58
Цитата Сообщение от Le1b Посмотреть сообщение
только как избавиться от " : "
вообще от чего-то константного избавиться что справа можно благодаря
PHP
1
rtrim( строка , что_стераем_справа )
, но в вашем случае мне не ясно за чем не выводить 0 - если 12 часов 0 минут и 42 секунды у вас выведется как 12:42 ...
0
 Аватар для Le1b
5 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 63
15.01.2013, 19:07  [ТС]
И правда, что-то я про 0 минут забыл. 0 я не вывожу потому что время будет выглядеть вот так 0:0:0:19 (дни/часы/минуты/секунды)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.01.2013, 19:07
Помогаю со студенческими работами здесь

Вывод времени до срабатывания таймера
Здравствуйте. У меня в приложении есть два таймера: m_timerAutoRefresh = new System.Windows.Forms.Timer(); ...

Проблема с выводом времени
есть код рабочий,проблема с выводом времени,выводит в цикле,как сделать,чтоб одним числом выводился? #include &lt;iostream&gt; #include...

Траблы с выводом времени
&lt;?php If(isset($_COOKIE)){ $time=$_COOKIE; $NowTime=time(); $a=$NowTime-$time; $timeOutput=date(&quot;d-m-Y H:i:s&quot;,$a); } ...

Вывод времени таймера сразу на Label
Доброго времени суток, необходимо сделать так что бы время таймера выводилось сразу на Label, думал думал и пока получилось вот это: ...

Перенос времени (таймера) в строку Edit1
Доброго времени суток форумчане:) Сделал секундомер с двумя кнопками, старт и стоп. По нажатию старт, начинается отсчёт времени,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru