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 :: Вывод времени с учетом часового пояса.

 PHP.SU

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


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

> Без описания
St.
Отправлено: 17 Августа, 2016 - 15:25:21
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Февр. 2016  


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




Интересует что-то типа сайты (php) и часовые пояса.
Разработка веб-приложений с поддержкой временных зон.
Как правильно решается эта проблема?
Э... Э... Какую книгу почитать? Что такое?

(Отредактировано автором: 17 Августа, 2016 - 21:23:18)

 
 Top
St.
Отправлено: 18 Августа, 2016 - 16:16:30
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Февр. 2016  


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




Вот еще темы:
Вывод даты с учетом часового пояса пользователя: http://www.php.su/forum/topic.ph...1&topic=7677
Дата+время и часовой пояс: http://forum.php.su/topic.php?fo...1&topic=6058
Решение проблемы часовых поясов в веб-приложении: https://habrahabr[dot]ru/post/124297/
Функции для работы с датой и временем в PHP: http://www.php.su/functions/?cat=datetime
Правильный взгляд на временные зоны в PHP: https://phptime[dot]ru/php-performan[dot][dot][dot]-zony-v-php[dot]html
Хранение даты в mysql с учетом часового пояса: https://habrahabr[dot]ru/post/69614/
Изменение текущего часового пояса в MySQL, PostgreSQL и в скриптах : https://www[dot]opennet[dot]ru/tips/1810

Еще о дате и времени.
Книга Д. Котеров и А. Костарев. PHP 5, 2-е издание. стр. 362.

(Отредактировано автором: 18 Августа, 2016 - 19:04:17)

 
 Top
Contr
Отправлено: 18 Августа, 2016 - 16:24:38
Post Id



Частый гость


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


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




В чем вопрос?
 
 Top
St.
Отправлено: 18 Августа, 2016 - 16:46:52
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Февр. 2016  


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




Contr пишет:
В чем вопрос?

Написан на php файловый архив. Пользователи заходят на сайт, регистрируются и выкладывают свои файлы. Есть желание добавить дату размещения файлов в архиве.
Вопрос как это правильно сделать с учетом часовых поясов?
Алгоритм можно?

Вот это мне понравилось:
Цитата:
Правильный взгляд на временные зоны в PHP: https://phptime[dot]ru/php-performan[dot][dot][dot]-zony-v-php[dot]html

Предпочтение отдаю хранить время загрузки файлов на сервер в формате UTC +00:00
Для этого чтобы PHP это делал, необходимо в php.ini установить date.timezone="UTС"
Пока так... Не понял

(Отредактировано автором: 18 Августа, 2016 - 20:13:12)

 
 Top
kuller
Отправлено: 18 Августа, 2016 - 19:58:38
Post Id



Частый посетитель


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


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




[quote=St.][/quote]

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

цитирую:
PHP:
скопировать код в буфер обмена
  1.  
  2. $timedifference = -5; // настройка времени. -5 - минус 5 часов либо 5 - плюс пять часов и т.к.
  3. $time_client = $timedifference * 3600;
  4. $real_time = time() + $time_client;
  5. echo strftime('%d.%m.%Y %H:%M:%S', $real_time);
  6.  
 
 Top
St.
Отправлено: 18 Августа, 2016 - 20:19:56
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Февр. 2016  


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




Цитата:
Выше дали же ссылки.... на первой ссылке получить ответ можно

Завтра посмотрю, нет времени.
Спасибо.
 
 Top
St.
Отправлено: 19 Августа, 2016 - 13:43:55
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Февр. 2016  


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




Еще раз спасибо. Круто

(Добавление)
Извините какое UTC в Украине?

Здесь написано что в Украине зимой UTC+02:00, а летом UTC+03:00
https://ru[dot]wikipedia[dot]org/wiki/Время_на_Украине
http://travel[dot]tochka[dot]net/7332-to[dot][dot][dot]-vremya-v-kieve/

Поиск в google с запросом: Что такое UTC

Результат:
UTC (СГВ) Универсальное координированное время, базирующееся на атомном отсчёте времени.
UTC - это наследие времени по Гринвичу (GMT, солнечное время на 0-вом меридиане),
иногда ошибочно именуемое GMT. Время по UTC не переводится зимой и летом.

КлЯдЬ! Так какое UTC в Украине? Не понял
Помне, так это правильно что UTC не переводится зимой и летом.

Так как правильно?
Извините.

(Отредактировано автором: 19 Августа, 2016 - 16:13:19)

 
 Top
Мелкий Супермодератор
Отправлено: 19 Августа, 2016 - 16:25:26
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




St. пишет:
Так какое UTC в Украине?

Именно вот это:
St. пишет:
зимой UTC+02:00, а летом UTC+03:00

При том, только в текущий момент. С течением времени и локальных правовых актов часовые зоны могут изменяться, в том числе на неподходящие - мировые города одного меридиана могут относиться к разным смещениям по UTC и иметь разное локальное время.
И, сдаётся мне, вы не учли дробные смещения, вроде UTC+03:30 (Иран), UTC+4:30 (Афганистан).

В PHP уже давно в наличии классы DateTime, с поддержкой системной tzdate - т.е. нормальным определением перехода на летнее/зимнее время (если библиотеку обновлять, конечно).
PHP:
скопировать код в буфер обмена
  1. $date = new DateTime();
  2. echo 'In default tz '.$date->getTimezone()->getName().' now: ', $date->format('H:i:s P'),PHP_EOL;
  3. $date->setTimezone(new DateTimeZone('Europe/Kiev'));
  4. echo 'In '.$date->getTimezone()->getName().' now: ', $date->format('H:i:s P'),PHP_EOL;

http://php.net/manual/en/timezones.php
И по идее полезный http://ru2.php.net/manual/en/cla...ateformatter.php Не знаю, сам туда уже не влезал, как-то не попадалось задачи отображать локальное для пользователя время.


-----
PostgreSQL DBA
 
 Top
St.
Отправлено: 19 Августа, 2016 - 18:30:00
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Февр. 2016  


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




Цитата:
И, сдаётся мне, вы не учли дробные смещения, вроде UTC+03:30 (Иран), UTC+4:30 (Афганистан).


Я думаю это так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $timedifference = -5; // настройка времени. -5 - минус 5 часов либо 5 - плюс пять часов и т.к.
  2. $minutes = 30; // минуты.
  3. $time_client = $timedifference * 3600 + $minutes * 60;
  4. $real_time = time() + $time_client;
  5. echo strftime('%d.%m.%Y %H:%M:%S', $real_time);


Зачем Иран с Афганистаном... Меня интересует Россия, Украина, Беларуссия.

Цитата:
В PHP уже давно в наличии классы DateTime, с поддержкой системной tzdate - т.е. нормальным определением перехода на летнее/зимнее время (если библиотеку обновлять, конечно).

Меня пугает слово обновлять.

А получить время клиента (его время и часовой пояс) через js можно?
Если да, то как (где-то видел такой скрипт...)?

Дополнение.
Ссылка: http://www[dot]softtime[dot]ru/forum/rea[dot][dot][dot]p;id_theme=59914
CODE (htmlphp):
скопировать код в буфер обмена
  1. var d = new Date();
  2. alert(d); //уже покажет строку с датой и временем пользователя, и смещением зоны
  3. alert(d.getTimezoneOffset()); //это покажет разницу времени GMT и пользователя в минутах

(Отредактировано автором: 19 Августа, 2016 - 19:00:10)

 
 Top
St.
Отправлено: 20 Августа, 2016 - 17:25:54
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Февр. 2016  


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




closed

(Отредактировано автором: 20 Августа, 2016 - 20:27:44)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB