Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Время в минутах php

ислам ибрагимов Ученик (218), закрыт 4 года назад
Всем удачного кодинга к сути!)
Есть тест на 90 минут максимум.
в базе есть точное время начала теста и конца максимальное. К в нормальном формате так и в unix формате.
И к примеру через минут 10 после начала теста, нужно узнать сколько времени прошло от начала тестирования.
1. Время хранимое в БД в формате unix $unix=1563808179;
2. Мои действия: echo time()-$unix;
3. Получаю правильные минуты и секунды, которые прошли от момента начала теста.
Но проблема в том, что и 3 часа показывается при вводе перед минутами. Непонятно откуда всегда откуда берутся эти 3 часа. Экспериментировал и с getdate();
Есть у кого нибудь идея как это правильно сделать. Хотябы направьте немного)
Лучший ответ
Саня Семенов Оракул (60394) 4 года назад
часы берутся когда таймстамп в нормальный вид конвертишь
ислам ибрагимовУченик (218) 4 года назад
Да верно. Но откуда? Ведь к примеру если взять время $start=18:05:00 (в роли начала теста).
А к примеру текущее время равно $real_time=18:35:00.

Мои действия $real_time-$start=покажется в общем вот: 3:30:00.
Но почему, ведь 3 часа не прошли?
Саня Семенов Оракул (60394) $real_time и $start типа DateTime() ? тогда в тот момент когда выводишь разницу в нужном формате там таймзона и прибавляется
Остальные ответы
Андрей Высший разум (422115) 4 года назад
Часы вылезают из московского часового пояса (+3 часа к UTC). Надо, чтобы и в БД и в PHP timestamp был либо одновременно с часовым поясом, либо одновременно UTC. Т. е. надо настраивать часовые пояса.
https://www.php.net/manual/ru/datetime.configuration.php#ini.date.timezone
https://www.php.net/manual/ru/function.date-default-timezone-set.php
https://www.php.net/manual/ru/timezones.php

P.S. Часовые пояса что в PHP, что в MySQL - это большой геморрой.
ислам ибрагимовУченик (218) 4 года назад
Эхх, поняяяятно. Спасиибо)
Похожие вопросы