IPB

Здравствуйте, гость ( Вход | Регистрация )

Получить точное время от серверов, Можно ли как-то получить время от ваших серверов?
kroncentr
сообщение 22.3.2013, 10:06
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 1
Регистрация: 22.3.2013
Пользователь №: 1967



это нужно для правильного отображения времени на часах на одном моем сайте. В идеале хотелось бы получить результат, который дает javascript объект "new Date()" и с ним работать)

Спасибо!)
Перейти в начало страницы
 
+Цитировать сообщение
 
Начать новую тему
Ответов
Admin
сообщение 26.3.2013, 6:42
Сообщение #2


Администратор
***

Группа: Главные администраторы
Сообщений: 277
Регистрация: 18.12.2007
Из: Саратов
Пользователь №: 1



Получать можно по NTP, например запуском команды ntpdate посредством php и парсить результат выполнения команды.

Например так, создав такие функции:
Код
function query_server($server)
{
    $command = '/usr/sbin/ntpdate -t 0 -qd '.$server;

    if (!$output = run_command($command))
    {
        return FALSE;
    }

    preg_match("/stratum ([\d]+),/s", $output, $stratum);
    preg_match("/originate timestamp: ([^\n]+)\n/s", $output, $timestamp);

    if (!isset($stratum[1])
        OR !isset($timestamp[1])
        OR $stratum[1] == 0)
    {
        return FALSE;
    }

    $timestamp = substr(trim($timestamp[1]), 17, -4);

    return array
    (
        'stratum' => trim($stratum[1]),
        'timestamp' => strtotime($timestamp)
    );
}

function run_command($command)
{
    if (!$fp = popen($command, "r"))
    {
        return FALSE;
    }

    $buffer = '';

    while (!feof($fp))
    {
        $buffer .= fgets($fp, 4096);
    }

    pclose($fp);

    if ($buffer != '')
    {
        return $buffer;
    }

    return FALSE;
}

Далее вызвав:
Код
$result = query_server('ntp2.stratum2.ru');
$js_date = date("M, d Y H:i:s", $result['timestamp']);

И уже использовать $js_date там где нужно в HTML, например так:
Код
...
<script type="text/javascript" language="javascript">
    <!--
    var TimeLocal = new Date();
    var TimeNTP1 = new Date("<?php echo $js_date ?>");
    //-->
</script>
...

Скрипт реализации самих часов на JS можно посмотреть тут.
Используется он на странице http://www.stratum1.ru

Удачи!


--------------------


Перейти в начало страницы
 
+Цитировать сообщение

Сообщений в этой теме


Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16.4.2024, 17:49
Материалы сайта предназначены для лиц 12 лет и старше.
HSDN — Рейтинг сайтов