С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/40: Рейтинг темы: голосов - 40, средняя оценка - 4.58
114 / 4 / 0
Регистрация: 07.09.2014
Сообщений: 329

Идущие часы на PHP

09.10.2018, 13:21. Показов 7852. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Часы на java показывают время на компьютере пользователя, которое может быть установлено неправильно.
Задача: отображать динамически точное время (сервера, интернета).
Метод решения: взять часы на сервере, а динамически обновлять через Java.
Пытаюсь создать шорткод с часами - не работает.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
add_shortcode ( 'clock', 'my_shortcode_clock' );
 
function my_shortcode_clock ( $attr, $content = null ) {
 
    $Hour = date("H");
    $Minute = date("i");
    $Second = date("s");
 
echo <<<EOT
<html>
    <head></head>
        <body>
            <form name="d"><p><strong>Точное время:</strong><input type="text" size="8" name="d2"></p></form>
            
            <script>var second=<?php echo $Second ?>; var minute=<?php echo $Minute ?>; var hour=<?php echo $Hour ?>; document.d.d2.value='0' function display(){ second++; if (second>=60){ second=0 minute++ } if (minute>=60){ minute=0 hour++ } if (hour>23){ hour=0 minute=0 second=0 } var cHour = hour; var cMinute = minute; var cSecond = second if (second < 10) cSecond = "0" + second; if (minute < 10) cMinute = "0" + minute; if (hour < 10) cHour = "0" + hour; document.d.d2.value=cHour+":"+cMinute+":"+cSecond setTimeout("display()",1000) } display()</script>
        </body>
    </html>
EOT;
}
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.10.2018, 13:21
Ответы с готовыми решениями:

идущие часы
как сделать из этой функции идущие часы, без перезагрузки странице? там вроде js прикручивать надо, ну я не знаю какой именно и как его...

Круглые идущие часы
Помогите написать прогу ,которая выводит на экран круглые часы со всеми стрелками и по нажатию Enter они начинаюи идти. Или хотябы...

Идущие часы: переделать код с использованием классов
Добрый день, у меня есть код идущих часов с помощью функций. Не мог бы кто-то помочь переделать его с помощью классов? function...

18
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
09.10.2018, 13:31
делаешь аякс запрос в сервер, получаешь от него ответ, выводишь куда хочется
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
09.10.2018, 14:14
intersk, принцип верный, только иногда все же не мешает делать синхронизацию с сервером или другим источником.

Добавлено через 1 минуту
У вас php-вставки в СТРОКЕ

Добавлено через 2 минуты
Нужно так: $Second или {$Second} и т.п.
1
09.10.2018, 14:41

Не по теме:

Цитата Сообщение от intersk Посмотреть сообщение
динамически обновлять через Java
Точно на Java? Может JavaScript?

0
114 / 4 / 0
Регистрация: 07.09.2014
Сообщений: 329
09.10.2018, 19:06  [ТС]
Dmitry, Phantom-84, Para bellum,
слышал что аякс нагружает сервер (при постоянных запросах), имел ввиду Javascript
вот рабочий код получился, но время на три часа меньше показывает.
Можно его ещё как-то оптимизировать?
мой сайт http://jurvrn.ru/, на сайте у меня ещё есть профиль jurvrn (сам не программист, создание сайта хобби)
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
<?php
/**
 * Created by jurvrn.
 * User: jurvrn
 */
 
/**
 * Plugin Name: my-shortcode-liveclock
 */
 
add_shortcode ( 'liveclock', 'my_shortcode_lc' );
 
function my_shortcode_lc ( $attr, $content = null ) {
   
$Hour = date("H");
$Minute = date("i");
$Second = date("s");
    
return "<html>
    <head></head>
    <body>
        <form name=\"d\"><p><strong>Точное время: </strong><input type=\"text\" size=\"8\" name=\"d2\"></p></form>
            <script>
            var second=$Second;
            var minute=$Minute;
            var hour=$Hour; 
            document.d.d2.value='0'; 
            function display(){ second++; 
            if (second>=60){ second=0; minute++ } 
              if (minute>=60){ minute=0; hour++ } 
               if (hour>23){ hour=0; minute=0; second=0 } 
              var cHour = hour; 
              var cMinute = minute; 
              var cSecond = second; 
              if (second < 10) cSecond = '0' + second; 
              if (minute < 10) cMinute = '0' + minute; 
              if (hour < 10) cHour = '0' + hour; 
              document.d.d2.value=cHour+':'+cMinute+':'+cSecond;
              setTimeout('display()',1000) 
            } 
            display()
            </script>
    </body>
    </html>";
}
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
09.10.2018, 20:04
Проверьте временную зону на сервере.

Добавлено через 5 минут
И не вызывайте три раза date при неявно заданном времени. Либо получите предварительно текущее время в отдельной переменной. Либо используйте один вызов функции, например getdate.
1
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
10.10.2018, 11:07
Цитата Сообщение от Phantom-84 Посмотреть сообщение
Проверьте временную зону на сервере.
решил использовать функцию current_time вместо date - и тогда значение берется из консоли WordPress с учетом временной зоны.
Цитата Сообщение от Phantom-84 Посмотреть сообщение
И не вызывайте три раза date при неявно заданном времени. Либо получите предварительно текущее время в отдельной переменной. Либо используйте один вызов функции, например getdate.
получить можно время как переменную, но ведь потом она должна изменяться динамически...
получается 1) нужно создать массив из элементов: час, минута, секунда? или 2) получить время а потом его "разбить" на элементы?
в принципе getdate эти оба варианта как бы выполняет.
Код будет выглядеть так? вместо
PHP
1
2
3
 $Hour = current_time("H");
$Minute = current_time("i");
$Second = current_time("s");
будет
PHP
1
$time = getdate();
А вместо
PHP
1
2
3
var second=$Second;
var minute=$Minute;
var hour=$Hour;
- будет?
PHP
1
2
3
var second=$time[seconds];
var minute=$time[minutes];
var hour=$time[hours];
Добавлено через 5 минут
но тогда опять время отстает на 3 часа, значит нужно добавить временную метку в функцию

Добавлено через 18 минут
пришлось добавить в функцию
PHP
1
date_default_timezone_set('Europe/Moscow');
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
10.10.2018, 14:55
Цитата Сообщение от jurvrn Посмотреть сообщение
получается 1) нужно создать массив из элементов: час, минута, секунда? или 2) получить время а потом его "разбить" на элементы?
Необязательно. Если вникнуть в написанное мной: получили время - передали его трижды в date.

Цитата Сообщение от jurvrn Посмотреть сообщение
будет?
Зачем? Используйте в строке непосредственно элементы массива. Символьные ключи нужно обрамлять кавычками. Сами элементы массива в строке - на всякий случай фигурными скобками, например {$time['seconds']}.
1
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
10.10.2018, 15:22
ваши замечания учел, код работает (http://jurvrn.ru) Нужно ли менять что-то?
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
<?php
/**
 * Created by jurvrn.
 * User: jurvrn
 * Date: 10.10.2018
 * Time: 10:31
 */
add_shortcode ( 'liveclock', 'my_shortcode_lc' );
 
function my_shortcode_lc ( $attr, $content = null ) {
 
date_default_timezone_set('Europe/Moscow');
$time = getdate();
 
return "<html>
    <head>
    <style>
       .polein {
        min-width: 149px; /* Ширина поля с учетом padding */
        height: 26px; /* Высота */
        line-height: 26px; /* Выравниваем по  центру в IE, равно высоте основной*/
        background: #dad7c5; /*url(images/input.png) no-repeat; /* Фон */
        padding: 0; /* Поля */
        border: none; /* Убираем рамку */
        font-size: 1.1em; /* Размер текста */
        text-align: center;
        outline: none;
       }
    </style>
    </head>
    <body>
    
        <form name=\"d\"><p><strong>Точное время: </strong><input type=\"text\" class=\"polein\" name=\"d2\"></p></form>
        
        <script>
            var second={$time['seconds']};
            var minute={$time['minutes']};
            var hour={$time['hours']}; 
            document.d.d2.value='0'; 
            function display(){ second++; 
            if (second>=60){ second=0; minute++ } 
              if (minute>=60){ minute=0; hour++ } 
               if (hour>23){ hour=0; minute=0; second=0 } 
              var cHour = hour; 
              var cMinute = minute; 
              var cSecond = second; 
              if (second < 10) cSecond = '0' + second; 
              if (minute < 10) cMinute = '0' + minute; 
              if (hour < 10) cHour = '0' + hour; 
              document.d.d2.value=cHour+':'+cMinute+':'+cSecond;
              setTimeout('display()',1000) 
            } 
            display()
            </script>
    </body>
    </html>";
}
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
10.10.2018, 15:32
Не вынуждайте меня повторять. Хотя для WP полно сделанных абы как расширений, поэтому можете оставить. Одним больше, одним меньше - не играет никакой роли
0
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
10.10.2018, 16:00
Phantom-84, я просто мало знаю теорию php и не все ваши слова по смыслу понимаю...
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
10.10.2018, 16:13
Видимо, и очков с собой нет, чтобы получше рассмотреть пример
0
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
10.10.2018, 16:16
Phantom-84, очки на носу ) и вроде всё сделал по вашим рекомендациям (ну как понял что вы писали)/
Кстати есть ещё один пример в просторах интернета:
Может его лучше использовать? меня интересует быстродействие, отсутствие нагрузки на сервер, точность

Это в <head>...</head> засунуть:
Код:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script language="JavaScript">
function vrem()
{
ndata = new Date();
hours = ndata.getHours();
mins = ndata.getMinutes();
secs = ndata.getSeconds();
tochki='<span style="opacity: 0.2;">:</span>';
if(mins<10) {mins="0"+mins}
if(secs<10) {secs ="0"+secs}
if (secs%2==0) {document.getElementById("vremya").innerHTML=hours+":"+mins;} else {document.getElementById("vremya").innerHTML=hours+tochki+mins;}
setTimeout("vrem()", 1000);
}
</script>
к тегу <body> подписать onload="vrem()" (чтобы как-то так было: <body onload="vrem()">)

и в нужном месте страницы разместить <div id="vremya">00:00</div>
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
10.10.2018, 20:47
jurvrn, как вы умудрились так отредактировать то сообщение с кодом, что даже следов не осталось?

Цитата Сообщение от jurvrn Посмотреть сообщение
Может его лучше использовать?
Не знаю. В этом разделе обсуждают PHP.
1
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
11.10.2018, 09:42
Phantom-84, не знаю ) будем считать что тема решена
0
 Аватар для Omion
190 / 55 / 12
Регистрация: 19.05.2015
Сообщений: 352
11.10.2018, 10:15
Здравствуй дорогой друг. Идущие часы на PHP сделать невозможно. Если ты не планируешь обновлять страницу каждую секунду. Тема закрыта всем спасибо.
P.S
14-ть сообщений. Ужас. Мне думается что все сообщения должны быть типо моего. Я не читал правда, и вопроса не читал. только заголовок темы.
0
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
11.10.2018, 11:37
Omion, мы знаем, автор поста неправильно выразился. В итоге соединили возможность брать время с сервера через php и отображать его изменение динамически
0
 Аватар для Omion
190 / 55 / 12
Регистрация: 19.05.2015
Сообщений: 352
16.10.2018, 16:33
jurvrn, ну так это же не проблема.)
0
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
17.10.2018, 12:54
Omion, тема решена. Теперь новый вопрос
https://www.cyberforum.ru/php/thread2333328.ht
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.10.2018, 12:54
Помогаю со студенческими работами здесь

Идущие часы(в графическо режиме,со стрелками, с выводом даты и т.д)
Здраствуйте форумчане и форумчанки сёдня я прихожу в школу радостный чуток а мне на информатике гвоорят что мол экзамен 27-ого мая и...

В массиве A=(a1, а2, ..., аn) удалить все подряд идущие отрицательные элементы, идущие вслед за минимальным элементом массива.
Помогите написать на паскале программу для: В массиве A=(a1, а2, ..., аn) удалить все подряд идущие отрицательные элементы, идущие вслед...

Удалить из массива все подряд идущие отрицательные элементы, идущие вслед за минимальным элементом массива
В массиве A=(a1, а2, ..., аn) удалить все подряд идущие отрицательные элементы, идущие вслед за минимальным элементом массива. var a...

Флеш часы: часы, показывающие указанное время
Привет всем!!!Помогите пожалуйста!!!Как создать флеш часы чтобы они показывали разное указанное время. Весь инет прошарил нигде нет! в...

Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы
Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) до того момента когда часовая и минутная стелка...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru