IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Разница в часовых поясах (https://www.imho.ws/showthread.php?t=84250)

hempsmoke 21.04.2005 11:50

Разница в часовых поясах
 
Что-то я совсем запутался. Записываю unix метку времени gmmktime(). На выводе надо учесть разницу во времени, например, москва (+3). Подскажите плиз, как осуществить смещение.

Sheryld 21.04.2005 13:14

я делал так:

Код:

setlocale (LC_TIME, 'ru_RU'); //ключевое здесь это установка локали
echo date("r");


is_absent 21.04.2005 13:39

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

hempsmoke 22.04.2005 01:11

Sheryld
спасиб, но мне нельзя привязываться к локали ru. Есть фифра смещения - ее надо прибавлять.
$gtm=3; - смещение по времени
$tt=1114082587; - метка по гринвичу
is_absent
gmdate("H",$tt)+$gtm
так?

несколько несостыковочка: запись метки ведет gmmktime() - она должна записать метку по гринвичу - правильно ?
читаю метку date("H",$tt)+$gtm)
получается асбсолютно не московское время, со смещением 3 часа.

is_absent 22.04.2005 06:32

а в gmmktime передавать час + смещение?

просто тогда не надо будет писать кучу условий для проверки корректности даты :). функция сама посчитает все как надо..
то есть ты делаешь $tt = gmmktime($hour + $gtm, ....)

hempsmoke 22.04.2005 17:45

is_absent
нее... :) так запишется сразу уже смещенное время, а мне нужно именно из базы смещать, как обычно в профилях пользователей. Метки уже записаны все.

is_absent 23.04.2005 11:48

время в базе + разница в часах * 3600 ?

я так понял хранишь ты именно unix_timestamp...

hempsmoke 23.04.2005 15:21

Цитата:

is_absent:
я так понял хранишь ты именно unix_timestamp...
да.

Цитата:

is_absent:
время в базе + разница в часах * 3600 ?
ха. точно :) сейчас попробую...

hempsmoke 24.04.2005 18:13

мда, ничего не выходит, попробую по шагам рассказать:
1. дата в базу пишется gmmktime(); - т.е. время должно быть по гринвичу. сейчас по Москве 18-40, записалось в базу 22-40. (проверял функцией date)
2. на выводе? чтобы показывать Московское время (смещение + 3) делаю date("H:i",$tmeta+3*3600)
3. показывает 1-38. т.е. наоборот смещает.

я в тупике. :(

Gike 24.04.2005 18:31

hempsmoke
:)
а если подогнать date("H:i",$tmeta-3*3600) вместо date("H:i",$tmeta+3*3600)?

PS
Цитата:

сейчас по Москве 18-40, записалось в базу 22-40.
в 18-40 разве по гривичу не 15-40 должно быть?
смещает правильно - что-то у тебя с часами нетак

hempsmoke 24.04.2005 19:51

Цитата:

Gike:
а если подогнать date("H:i",$tmeta-3*3600) вместо date("H:i",$tmeta+3*3600)
:) ну так смещение же +3...

Цитата:

Gike:
в 18-40 разве по гривичу не 15-40 должно быть?
должно быть :( часы на сервере у хостера неправильно выставлены получается?


Часовой пояс GMT +4, время: 08:32.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.