Как округлить GMT дату до суток

kingdom

Новичок
Как округлить GMT дату до суток

Привет всем,

вопрос такой есть например GMT дата 27.03.2006 05:24 и хочется получить из нее 27.03.2006 00:00.
Хочу использовать фукцию getdate, но она работает для GMT странно
PHP:
$gm = 1143437066; 
echo gmdate('d M, Y G:i', $gm).'<br>';	
$data = getDate($gm);
echo $data['mday'].'-'.$data['mon'].'-'.$data['year'].' '.$data['hours'].':'.$data['minutes'];
получаю на выходе
27 Mar, 2006 5:24
26-3-2006 21:24

разница в 8 часов, почему? и как сделать правильно?

Спасибо.
 

vadim

Guest
kingdom
Видимо у вашего сервера разница в 8 часов по сравнению с GMT
Скажите, вы точно понимаете, что такое GMT??

Чтобы округлять, просто проверяйте с помощью date сколько сейчас часов, если больше 12, то выводим опять же с помощью date день месяца+1
 

Фанат

oncle terrible
Команда форума
а зачем выводить .$data['hours'].':'.$data['minutes'];
если нужно выводить 00:00?
 

kingdom

Новичок
Автор оригинала: vadim
kingdom
Видимо у вашего сервера разница в 8 часов по сравнению с GMT
Скажите, вы точно понимаете, что такое GMT??

Чтобы округлять, просто проверяйте с помощью date сколько сейчас часов, если больше 12, то выводим опять же с помощью date день месяца+1
Ссервер на котором размещен мой сайт находится в Америке, поэтому и разница.
Но почему getDate чувствителен к часовому поясу сервера? Она же просто дешифрует дату.

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

-~{}~ 02.04.06 15:26:

Автор оригинала: Фанат
а зачем выводить .$data['hours'].':'.$data['minutes'];
если нужно выводить 00:00?
Вы абсолютно правы, я это привел только для примера, так понятнее в чем проблема.
 

Фанат

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

Фанат

oncle terrible
Команда форума
ТОПОРОМ.
у вас в королевстве неизвестны строковые функции?

-~{}~ 02.04.06 15:38:

vadim, помолчи
 

vadim

Guest
kingdom
так вы getDate сравнивали с gmdate - отсюда и разница!!!

Используйте date, эта функции имеет больше возможностей, чем просто getDate
 

kingdom

Новичок
Автор оригинала: vadim
kingdom
так вы getDate сравнивали с gmdate - отсюда и разница!!!

Используйте date, эта функции имеет больше возможностей, чем просто getDate
Если просто выводить на дату в строку, то проблемы нет. Мне нужно посчитать разницу в днях между двумя GMT датами, поэтому мне нужно получить округленное численное, а не строковое предствление.

Можно попробовать округлить в строковое представление, потом перевести в численное и сделать вычитание, но это как-то не эстетично :)
 

Фанат

oncle terrible
Команда форума
разница в днях считается в запросе.
и никакие GMT даты не нужны.

-~{}~ 02.04.06 15:48:

vadim
по кочану.
и по капусте.
 

kingdom

Новичок
будетм считать что у меня нет доступа к запросу

я просто на вход получаю дату и часовой пояс, как округлить дату с учетом часового пояса? если округлили, то разница в днях высчитывается очевидно

ну или как посчитать разницу в днях между двумя датами без использования округления?
 

Фанат

oncle terrible
Команда форума
не будем считать, что у тебя нет доступа к запросу.
зачем делать сложно, когда можно сделать просто?
какая база данных?
 

kingdom

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

будем считать что нет никакой БД =)))

как это сделать?
 

vadim

Guest
Фанат
Мне можно отвечать, разрешишь?? Или ты всё таки дашь сам ответ на данный вопрос??
 

zerkms

TDD infected
Команда форума
дата и часовой пояс сообщения и текущее время, а я хочу получить разницу в днях
зачем для получения разницы в днях тебе округлять дату?
если не нужно особой точности - то просто раздели разницу в секундах на число секунд в дне....
если нужна точность - то

http://php.com.ua/ru/tips/php_mysql_date.htm
 
Сверху