2013-10-05 1 views
0

Я загружаю переменные из SQL-запроса, одним из которых является временная метка unix. Я использую функцию PHP date(), чтобы определить день недели. Кажется, что все работает нормально, но я заметил, что когда timestamp unix имеет значение NULL, использование date("w", $myunixtime) дает значение 3. Я повторяю значение метки времени, и я получаю «пустое», как и должно. Затем сразу после этого я повторяю значение функции, и я вижу 3. Это странно, и я не вижу никакой документации, которая объясняет это.

Я на сервере Linux с использованием PHP версии 5.3.10. Сервер находится в Восточном часовом поясе, и нет, я не использую UTC и не хочу - слишком много кода для изменения для этого. В любом случае это не должно иметь никакого отношения.

Кто-нибудь еще заметил странные значения из date() функции - при использовании последних лет и не 1599-1600 года выпуска, которые вы, возможно, заметили?

ответ

2

Ваша пустая строка, заправленная в int как 0 и timestamp of 0, начинается с unix epoch, 1 января 1970 00:00:00 GMT это был четверг, но поскольку ваш часовой пояс UTC -4 вы получаете за предыдущий день - среда ,

В любом случае, какого результата вы ожидаете?

+0

Ну, это вопрос qood. Думаю, я ожидал NULL. Спасибо. В этом контексте не было ничего больно, но это определенно могло сожгло меня по дороге. – McAuley

+1

При использовании PHP вам всегда нужно знать результаты слабой типизации. – Yaroslav

Смежные вопросы