как работает этот код ??и какой код правильный - PullRequest
0 голосов
/ 27 сентября 2011

Это мой текущий код, который, кажется, не работает правильно.

echo date("h:i", 1*60*60) ; /* 1*60*60 mean 1 hours right */

Результат - 03:00, когда он должен быть 01: 00.

Где это идет не так?

я хочу сделать это

1 - сотрудник пришел вовремя, администратор выбрал его

2 - сотрудник пришел- оставить сохраненным в mysql как отметку времени

Теперь я пытаюсь заставить администратора видеть, сколько часов означает опоздание пользователя

дата пользователя время по умолчанию поздно

user1 11-09-2011 09:10 09:00 10 минут

user1 12-09-2011 08:00 09:00 -60 минут

Ответы [ 6 ]

5 голосов
/ 27 сентября 2011

Если вы выводите просто date("Y-m-d H:i:s",0), вы должны увидеть, что это не 1970-01-01 00:00:00, как должно быть.Это потому что date зависит от вашего местного часового пояса.Например, я в GMT +3, а date("Y-m-d H:i:s") дает мне 1970-01-01 03:00:00.

Таким образом, ответ таков: вы не в часовом поясе GMT ​​(вероятно, в GMT + 2), и на date влияет это.1014 * Следующий код выводит 1970-01-01 00:00:00, так что это определенно часовые пояса.

date_default_timezone_set('UTC');
echo date("Y-m-d H:i:s", 0);

Но, я не вижу упоминаний об этом в руководстве date PHP.

1 голос
/ 27 сентября 2011

Проблема связана с вашим часовым поясом (выглядит как GMT + 2).

Вычисления даты в PHP основаны на настроенном часовом поясе сервера.Например мои шоу

$ php -r 'echo date("h:i", 3600), PHP_EOL;'

11:00
0 голосов
/ 27 сентября 2011

Мне приходит в голову, что SamarLover думает, что он хочет, это

gmdate("h:i", 1 * 60 * 60);
0 голосов
/ 27 сентября 2011

Возможно, вы не настроили часовые пояса , что должно привести к предупреждению PHP или уведомлению, если оно опущено.

0 голосов
/ 27 сентября 2011

Э-э, если я прав, второй параметр date () - это метка времени Unix, то есть секунды с 1970 года. Вы должны получить время () и добавить 60 * 60 к нему.

echo date("h:i", time()+60*60); // get current timestamp, add one hour
0 голосов
/ 27 сентября 2011

Второй аргумент в функции date () должен быть метка времени UNIX , секунды, переданные с 1 января 1970 года. Вам необходимо указать время в соответствии с этим значением.

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