Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Время "Pacific Time"
 
 автор: baston   (06.09.2005 в 11:25)   письмо автору
 
 

Мне необходимо вывести две даты: одну - местное время пользователя, вторую - временная зона Pacific Time (США).
Первую дату вывожу так (стандартно):

<?php
$date 
date ("d.m.Y G:i:s") ;
echo 
"Текущее время и дата:"," ",$date;
?>

А вот со второй совсем не знаю как. Подскажите пожалуйста. Спасибо.

   
 
 автор: cheops   (06.09.2005 в 13:13)   письмо автору
 
   для: baston   (06.09.2005 в 11:25)
 

А это какой часовой пояс?

   
 
 автор: codexomega   (06.09.2005 в 15:18)   письмо автору
 
   для: cheops   (06.09.2005 в 13:13)
 

GMT - 8:00

   
 
 автор: cheops   (06.09.2005 в 15:35)   письмо автору
 
   для: codexomega   (06.09.2005 в 15:18)
 

Можно воспользоваться следующим скриптом
<?php
  
// Текущее время по гринвичу
  
$gr gmdate("U"time());
  
// Текущее время Pacific Time (США) - нужно вычесть 8 часов
  
$date date ("d.m.Y G:i:s"$gr 8*3600);
  echo 
$date."<br>";
?>

   
 
 автор: baston   (06.09.2005 в 20:12)   письмо автору
 
   для: codexomega   (06.09.2005 в 15:18)
 

Спасибо большое за помощь.
Только почему минус 8 часов? Pacific Time в США это минус 11 часов (по сравнению с московским). 8 часов это Восточное время.
Эту информацию я взял с сайта ebay (где показано время часовых поясов США). В принципе мне и нужно будет выводить два типа времени: время пользователя на его компьютере и соотвествуюшее время в требуемом час.поясе США.
И еще один вопрос?
Это время московское? А если у пользователя время петропавловска-камчатска? Как и нужно ли высчитывать?
Спасибо.

   
 
 автор: codexomega   (06.09.2005 в 20:20)   письмо автору
 
   для: baston   (06.09.2005 в 20:12)
 

-8:00 не от московского, а от Гринвича.
Функция PHP gmdate() выдает время по Гринвичу, а оттуда и вычисляете.

   
 
 автор: baston   (06.09.2005 в 20:50)   письмо автору
 
   для: codexomega   (06.09.2005 в 20:20)
 

В этом случае время будет неверное (если по Гринвичу вычислять). А почему нужно исходить из Гринвича?
Хотя понятно почему - это нулевой часовй пояс и из него все исходят. Глупый вопрос, каюсь.
Но вот мне придется тогда в скрипте указывать не 8, а 11, чтобы отображалась верноее время (при сравнении с московским). А вот как быть с другими часовыми поясами пользователя? Они тогда тоже будут видеть неверное время?

   
 
 автор: Akira   (06.09.2005 в 21:16)   письмо автору
 
   для: baston   (06.09.2005 в 20:50)
 

Гринвич имеет 0 GMT, Москва +3 GMT? США -8 GTM.
Вычитаеться из GMT 0 т.е. Гринвича :) Все просто. Если из +3 GMT , то надо -11 вычитать :)

   
 
 автор: cheops   (07.09.2005 в 00:40)   письмо автору
 
   для: baston   (06.09.2005 в 20:50)
 

Нет, для указания местного времени применяйте скрипт, который у вас был изначально, а для ТихоОкеанского тот, что приведён двумя постоами выше - так отсчёт идёт от Гринвича, поэтому оно не зависит от пояса, в котором выполняется скрипт, летнего времени и т.п. неурядицы...

   
 
 автор: baston   (06.09.2005 в 21:25)   письмо автору
 
   для: baston   (06.09.2005 в 11:25)
 

Вот посмотрите, нашел такой код:
[

<?php

print date"j.m.Y H:i:s" time() ) . "<br>"// Время сервера

$needle = -7;  // Нужный нам часовой пояс
$tm = ( date"Z" ) / 60 60 ); // Смещение часового пояса сервера относительно GMT
$sm = ( $needle 3600 ) - date"Z" ); // Смещение на нужный часовой пояс

print date"j.m.Y H:i:s" time() + $sm ); // Время, со смещением на наш часовой пояс

?>

Сейчас попробовал (при этом поставил -7 в переменную $needle) - показывает правильно. Но я просто не уверен, что у всех пользователей в разных часовых поясах будет показываться верное время. Пожалуйста, проверьте его правильность (код) и возможности.
Спасибо всем.

   
 
 автор: cheops   (07.09.2005 в 00:42)   письмо автору
 
   для: baston   (06.09.2005 в 21:25)
 

Данный скрипт тоже будет корректно работать во всех часовых поясах, так как он вычисляет разницу с учётом текущего часового пояса.

   
 
 автор: baston   (09.09.2005 в 12:11)   письмо автору
 
   для: cheops   (07.09.2005 в 00:42)
 

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

   
 
 автор: cheops   (09.09.2005 в 12:47)   письмо автору
 
   для: baston   (09.09.2005 в 12:11)
 

Такие вещи на JavaScript осущетствляют http://www.softtime.ru/forum/index.php?id_forum=4 - задают время средствами PHP и после загрузки страницы, его начинает отсчитывать скрипт JavaScript - погрешность - минус время загрузки.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования