Серверное время (PHP + JS)

Если вы хотите получить что-то готовое и бесплатно, то пишите в этом разделе.
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Re: Серверное время (PHP + JS)

Сообщение wierusna »

То есть сначала методом php взять время в секундах из date(), потом перевести в секунды время до конечной точки и вычесть из него время в секундах из date(). Результат записать в <div id="timer" style="display:none">100500</div>
Так? Я что то совсем запутался. Прочитал ваш текст раз 20 прежде чем хоть что то понял....
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Серверное время (PHP + JS)

Сообщение Serge »

wierusna писал(а):То есть сначала методом php взять время в секундах из date(), потом перевести в секунды время до конечной точки и вычесть из него время в секундах из date(). Результат записать в <div id="timer" style="display:none">100500</div>
Так? Я что то совсем запутался. Прочитал ваш текст раз 20 прежде чем хоть что то понял....
Да, сначала методом пхп взять время в секундах. Это делают две функции - time() (возвращает время в секундах от начала времени) и strtotime("Y-m-D H:i") (перегоняет поданную дату в секунды от начала времени). Разница между ними - и будет разница между этими двумя датами в секундах.
Я противник написания html кода в php файлах (по крайней мере в этой ситуации) и предпочитаю при помощи яваскрипта запрашивать у скрипта на сервере (при помощи post или get запроса) это самое время и записываю его в нужный мне div.
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Re: Серверное время (PHP + JS)

Сообщение wierusna »

Немного не понял эту строчку
time() (возвращает время в секундах от начала времени) и strtotime("Y-m-D H:i") (перегоняет поданную дату в секунды от начала времени). Разница между ними - и будет разница между этими двумя датами в секундах.

Нужно взять одну из двух функций или же обе?
*от начала времени* - это что?

*Разница между ними* - если брать одну из функций. то между чем и чем разница?

Боже...мои мозги кипят.... :oops:
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Серверное время (PHP + JS)

Сообщение Serge »

wierusna писал(а):Немного не понял эту строчку
time() (возвращает время в секундах от начала времени) и strtotime("Y-m-D H:i") (перегоняет поданную дату в секунды от начала времени). Разница между ними - и будет разница между этими двумя датами в секундах.

Нужно взять одну из двух функций или же обе?
*от начала времени* - это что?

*Разница между ними* - если брать одну из функций. то между чем и чем разница?

Боже...мои мозги кипят.... :oops:
Возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT) до текущего времени.
P.S. Вы уж простите, что так толсто, http://php.net/manual/ru/function.time.php . Включайте думалку уже, я уже не знаю, что тут осталось, кроме как число посчитать.
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Re: Серверное время (PHP + JS)

Сообщение wierusna »

Спасибо вам большое!! Все получилось)
Сделал вот так, ибо не знаю джава скрипт и не умею делать Post запрос через него

Код: Выделить всё

  <?$time = time();$timeFINISH = strtotime("2012-11-02 17:41");$timeDIFF = $timeFINISH - $time; ?>       <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>    <head><script>           timer = function()    {        var time_to = document.getElementById('timer');        time_to.innerHTML--;        if(time_to.innerHTML >= 0)        {            var dsec = time_to.innerHTML % 60;            var dmin = ((time_to.innerHTML - dsec) % 3600)/60;                var dhour = ((time_to.innerHTML - dsec - dmin*60)/3600) % 24;            var dday = (time_to.innerHTML - dsec - dmin*60 - dhour*3600)/86400;            if(dday % 10 === 1 && dday !== 11)                dday = dday + " день, ";            else if(dday % 10 === 2 && dday !== 12)                dday = dday + " дня, ";            else if(dday % 10 === 3 && dday !== 13)                    dday = dday + " дня, ";            else if(dday % 10 === 4 && dday !== 14)                dday = dday + " дня, ";            else                dday = dday + " дней, ";                if(dhour < 10)                dhour = "0" + dhour;            if(dmin < 10)                dmin = "0" + dmin;            if(dsec < 10)                dsec = "0" + dsec;            document.getElementById("time").innerHTML = dhour + ":" + dmin + ":" + dsec;         }        else        {            document.getElementById("text").innerHTML = "Отсчет закончен :)";            document.getElementById("time").innerHTML = "";        }        setTimeout(timer, 1000);    }             $(document).ready(function(){         timer();        });    </script></head>    <body>    <div id="timer" style="display:none"><? echo $timeDIFF ?></div><!--Время в секундах до финальной точки-->    <div id="time"></div>    <div id="text"></div>    <div id="time_to"></div>    </body>  
Осталось еще пара вопросов:
1. Этот скрипт сильно нагружает сервер если онлайн сидят допустим 500 человек одновременно?
2. Как вместо document.getElementById("text").innerHTML = "Отсчет закончен "; сделать загрузку текста из файла .txt (однострочный) пользуясь этим уроком http://flapps.ru/forum/post40653.html#p40653

Спасибо еще раз!
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Серверное время (PHP + JS)

Сообщение Serge »

wierusna писал(а):Спасибо вам большое!! Все получилось)
Сделал вот так, ибо не знаю джава скрипт и не умею делать Post запрос через него

Код: Выделить всё

 
Осталось еще пара вопросов:
1. Этот скрипт сильно нагружает сервер если онлайн сидят допустим 500 человек одновременно?
2. Как вместо   document.getElementById("text").innerHTML = "Отсчет закончен ";  сделать загрузку текста из файла .txt (однострочный) пользуясь этим уроком http://flapps.ru/forum/post40653.html#p40653

Спасибо еще раз![/quote]
1) Отсчет идет на стороне клиента, сервер задействован только 1 раз при открытии страницы
2) Я предпочитаю работать с jQuery и post, а не аяксом. Мне кажется достаточно только почитать про файлы в php, что бы понять, как делать.
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Re: Серверное время (PHP + JS)

Сообщение wierusna »

Serge писал(а):
wierusna писал(а): 2) Я предпочитаю работать с jQuery и post, а не аяксом. Мне кажется достаточно только почитать про файлы в php, что бы понять, как делать.
То есть сначала открыть текстовик

Код: Выделить всё

 $openTXT = fopen('ID.txt', 'r'); 
И подставить его так

Код: Выделить всё

 document.getElementById("text").innerHTML = "<? echo $openTXT ?>"; 
Правильно думаю?
Если есть еще какой нибудь (сберегающий трафик) вариант, подскажите. Пользуюсь бесплатным хостингом) Поэтому это так важно.
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Re: Серверное время (PHP + JS)

Сообщение wierusna »

Попробовал так

Код: Выделить всё

   $file = fopen("путь/finish.txt","r");  if(!file)    {      echo("Ошибка открытия файла");    }    else    {      $buff = fread ($file, 15);          } 
И в скрипт вставил это

Код: Выделить всё

 document.getElementById("text").innerHTML = "<? print $buff; ?>"; 
Но вместо цифр, которые записаны в текстовик, выдает пустое место. А если вывести просто print $buff; в php, то все работает.
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Серверное время (PHP + JS)

Сообщение Serge »

wierusna писал(а):Попробовал так

Код: Выделить всё

   $file = fopen("путь/finish.txt","r");  if(!file)    {      echo("Ошибка открытия файла");    }    else    {      $buff = fread ($file, 15);          } 
И в скрипт вставил это

Код: Выделить всё

 document.getElementById("text").innerHTML = "<? print $buff; ?>"; 
Но вместо цифр, которые записаны в текстовик, выдает пустое место. А если вывести просто print $buff; в php, то все работает.
Потому что это, простите, хрень. Нельзя мешать 2 языка программирования. Как это сделать - я уже отвечал, код писать не хочу, Вы же ничему не учитесь.
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

Re: Серверное время (PHP + JS)

Сообщение wierusna »

Нашел как выводить текст через get

Код: Выделить всё

  $.get("finish.txt", function(data)        {             alert(data);        });
Но как мне alert заменить на var response = .......;
И эту переменную вставить в

Код: Выделить всё

document.getElementById("text").innerHTML = response;
Прошу помогите! Я обратился в этот раздел форума потому, что он называется ПРОСИМ ГОТОВОЕ. Мне нужно закончить с кодовой частью как можно быстрее.....времени на изучение JavaScript нету( :cry:
Ответить