Как правильно работать с датами в PHP?

123 4
ixRock
На сайте с 14.11.2006
Offline
46
2110

Насколько я понимаю, для хранения даты в базе лучше использовать таймштап типа time() т.к его легко потом преобразовывать в любой формат с помощью date(), так? Или всё же не так?

Но вопрос собственно в другом: при добавлении даты в базу время учитывается ведь серверное, так? Получается при выводе для конкретного пользователя нужно как-то определять его временную зону и "выравнивать" для него дату относительно серверной временной зоны?

Так вот, как тогда палить таймзоун клиента? Какие-то хэдэры может считывать или в пхп уже есть что-то готовое для этого? Если "всё правильно перепутано", то как надо?)

Работаю [S]за еду и секас[/S] с XHTML, CSS, XSLT, JS, PHP. Если что, вот тут (http://www.mintdesign.ru/) некоторые мои работы. Контакты: ася 344-ноль86-276, мыло ixrock@gmail.com
[Удален]
#1
ixRock:
Насколько я понимаю, для хранения даты в базе лучше использовать таймштап типа time() т.к его легко потом преобразовывать в любой формат с помощью date(), так? Или всё же не так?

Но вопрос собственно в другом: при добавлении даты в базу время учитывается ведь серверное, так? Получается при выводе для конкретного пользователя нужно как-то определять его временную зону и "выравнивать" для него дату относительно серверной временной зоны?

Так вот, как тогда палить таймзоун клиента? Какие-то хэдэры может считывать или в пхп уже есть что-то готовое для этого? Если "всё правильно перепутано", то как надо?)

для этого при регистрации есть вкладочка, ваш часовой пояс.

З.Ы. а вообще я использую обчно либо даты без "часов минут секунд", "либо добавлено Х часов назад"

[Удален]
#2

Soulwest, таймзоун клиента можно палить с помощью яваскрипта

bearman добавил 19.11.2009 в 11:56

например так.

new Date().getTimezoneOffset() - вернет колво минут разницу по гринвичу вроде)

[Удален]
#3
ixRock:
Как правильно работать с датами в PHP?

Тс про пхп спросил, я и ответил как логичней сделать в пхп

Prior
На сайте с 03.03.2008
Offline
194
#4

Разве проблема из Javascript в PHP передать переменную? :)

Ответы на вопрос - https://answers.net.pl
wdsg
На сайте с 09.02.2009
Offline
31
#5

ТС, храните все время в родной зоне, а свой часовой пояс юзер пусть сам установит. При выводе будете корректировать относительно установленного пояса.

Проектирование и разработка сложных IT-систем. Вожусь с проблемными задачами.
ixRock
На сайте с 14.11.2006
Offline
46
#6
wdsg:
ТС, храните все время в родной зоне, а свой часовой пояс юзер пусть сам установит. При выводе будете корректировать относительно установленного пояса.

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

вот я и думаю может лучше тогда, как посоветовал bearman, корректировать вывод даты уже с учетом конкретной таймзону юзера, ловя её через JS..

а вот как определить таймзон самого сервака? date_default_timezone_get() так?

[Удален]
#7

ixRock, date("O");

если не ошибаюсь) скажет разницу в часах с минутами по гринвичу. то есть например вернет +0500

где +05 - пять часов направо по карте, и 00 минут)

BB
На сайте с 16.09.2009
Offline
6
#8
ixRock:
Насколько я понимаю, для хранения даты в базе лучше использовать таймштап типа time() т.к его легко потом преобразовывать в любой формат с помощью date(), так? Или всё же не так?

не так

ixRock:

Так вот, как тогда палить таймзоун клиента? Какие-то хэдэры может считывать или в пхп уже есть что-то готовое для этого? Если "всё правильно перепутано", то как надо?)

PHP серверный язык - никак.

есть решения, за примером в личку (решение платное, $20)

Продам скрипт (CMS) доски объявлений (/ru/forum/399149) утилиты для рутинной работы (/ru/forum/429322) верстка, натяжка, доработка (/ru/forum/429323)
ixRock
На сайте с 14.11.2006
Offline
46
#9

BigBoard, ы) лучше б ничего не писал.. советчик..

Остальным всем спасибо, будем пробовать :)

BB
На сайте с 16.09.2009
Offline
6
#10
bearman:
ixRock, date("O");

если не ошибаюсь) скажет разницу в часах с минутами по гринвичу. то есть например вернет +0500

где +05 - пять часов направо по карте, и 00 минут)

чево? ))) хумар какой-то)

BigBoard добавил 20.11.2009 в 20:11

ixRock:
BigBoard, ы) лучше б ничего не писал.. советчик..

Остальным всем спасибо, будем пробовать :)

я не советовал, я на вопросы отвечал.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий