Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: progressbar(прогрессбар) и GMT [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
webog
Отправлено: 29 Сентября, 2015 - 16:26:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


zypikov пишет:
Вы еще не разобрались?


Нет! )

Вы читали мой пост? http://forum.php.su/topic.php?fo...74051#1442174051
Я там описал все. Умножение на 1000 не катит.

Есть еще варианты?


-----
Hello!
 
 Top
Panoptik
Отправлено: 29 Сентября, 2015 - 17:22:53
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




зачем парить мозг по синхронизации. я не читал те длинные куски кода, но дам совет. присылайте с сервера 3 метки времени (старт, текущая, конец) формат нужно смотреть исходя из задания, можно голый тамйстамп или же в формате Y-m-d H:i:s
на клиенте все метки преобразовываете в date

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var start_dt = new Date(start_date_from_server);
  3. var current_dt = new Date(current_date_from_server);
  4. var end_dt = new Date(end_date_from_server);
  5.  


далее рисуете прогресс бар исходя из серверных данных
напишите простенькую функцию которая будет рассчитывать оставшееся время исходя из двух значений. ну короче разложите свою большую задачу на мелкие части и поэтапно реализуйте каждую часть. ну а проблемы если появятся то срашивайте в гугле, а после тут (если не получится) только не по простыне кода, а по конкретному вопросу


-----
Just do it
 
 Top
webog
Отправлено: 29 Сентября, 2015 - 17:32:06
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Panoptik пишет:
только не по простыне кода, а по конкретному вопросу


Я и задал вопрос: как победить GMT ? Одно время с сервера, другое клиентское.

У пользователей с МСК работает, у тех у кого ГМТ+4 и более уже не работает.

P.S. Будьте внимательнее! )


-----
Hello!
 
 Top
IllusionMH
Отправлено: 29 Сентября, 2015 - 18:02:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Юзайте ISO 8601 вместо Unix time
 
 Top
webog
Отправлено: 29 Сентября, 2015 - 18:08:26
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


IllusionMH пишет:
Юзайте ISO 8601 вместо Unix time


Это в части JS ? Дело в том, что я в JS не бум бум. Поэтому и даю вознаграждение за верное решение.


-----
Hello!
 
 Top
IllusionMH
Отправлено: 29 Сентября, 2015 - 18:18:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




webog, это во всей системе(пых, БД, ЖС). Нужно прочесть что это, и юзать его. JS отлично хавает форматированнвйе строки.

Выше уже писали про getTimezoneOffset. Попробуйте поменять знак с + на - , т.к. для часовых поясов с положительным смещением отдаются отрицательны сдвиги.
 
 Top
Panoptik
Отправлено: 29 Сентября, 2015 - 19:02:57
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




да блин, какая разница
webog пишет:
Я и задал вопрос: как победить GMT ? Одно время с сервера, другое клиентское.


я вам сказал как решить разницу

с сервера отдаете 3 метки времени и конвертируете их в даты. так как вам нужно не абсолютное (или текущее) время, а всего лишь разницу (внимание! для отображения сколько часов осталось, то не имеет значения в какой часовой зоне сервер или браузер)

с сервера будьто аякс или при загрузке страницы дефайните 3 переменных в формате таймстамп

на клиенте будет примерно так
CODE (javascript):
скопировать код в буфер обмена
  1. var start_ts = 1443541825,
  2.              cur_ts = 1443545000,
  3.              end_ts = 1443549345;

тут нужно учесть что для джаваскрипт таймстамп - это милисекунды, в то время как в пхп - это секунды!
то есть при создании дат мы умножаем каждую метку времени на 1000
CODE (javascript):
скопировать код в буфер обмена
  1. var start_dt = new Date(start_ts * 1000),
  2.              cur_dt = new Date(cur_ts * 1000),
  3.              end_ts = new Date(end_ts * 1000);

это в принципе пример как передать и обработать дату из пхп в джс

далее Внимание! то что я говорил о разделении задач
1) рассчет процентов для прогрессбара и отображения как таковых
2) рассчет остатка времени
3) реализация таймера обратного отсчета исходя из пункта 2

1)
CODE (javascript):
скопировать код в буфер обмена
  1. var abs_ts = end_ts - start_ts; // общее количество секунд на событие
  2. var abs_offset = cur_ts - start_ts; // количество секунд прошедших с начала события
  3. var percent = Math.round(abs_offset / abs_ts * 100); // рассчет процентов


2)
CODE (javascript):
скопировать код в буфер обмена
  1. var left_ts = end_ts - cur_ts; // рассчет сколько секунд осталось
  2. var left_dt = new Date(left_ts*1000); // создание даты
  3. // вывод
  4. console.log('Осталось: ' + left_dt.getUTCHours() + ' часов ' + left_dt.getUTCMinutes() + ' минут');


3) пункт на вашей совести. уже больше чем достаточно было посоветовано


-----
Just do it
 
 Top
webog
Отправлено: 29 Сентября, 2015 - 19:12:20
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Panoptik пишет:
3) пункт на вашей совести. уже больше чем достаточно было посоветовано


Ребята, спасибо что стараетесь и помогаете.
Я это все знаю и понимаю. Скрипт на JS у меня сильно замудрен.
Там не только прогресбар, то и еще %-ты отображаются, полоса заполняется, плюс обновление данных и куча всякой ерунды в которой я не секу.

Короче, все что писали здесь не работает. Нужен видимо иной подход, как вариант тестировать все способы сразу или еще как-то. Скрипт стоит на сайте, кстати.

От слов своих не отказываюсь, за верное решение с меня пивас )


-----
Hello!
 
 Top
webog
Отправлено: 06 Октября, 2015 - 10:12:51
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Подыму. Актуально.


-----
Hello!
 
 Top
Panoptik
Отправлено: 06 Октября, 2015 - 11:06:43
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




ты бы за неделю уже книжку прочитал бы. иди учи мат часть. все что можно было для тебя сделать уже сделали.


-----
Just do it
 
 Top
webog
Отправлено: 06 Октября, 2015 - 11:09:05
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Panoptik пишет:
ты бы за неделю уже книжку прочитал бы. иди учи мат часть. все что можно было для тебя сделать уже сделали.


Это понятно. Кому еще нужна денюжка?

P.S. Было бы время читал книжки и сделал бы сам, а так готов заплатить за знания и труд.


-----
Hello!
 
 Top
webog
Отправлено: 08 Июля, 2016 - 14:01:37
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Не актуально. Тему можно закрыть.


-----
Hello!
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB