Здравствуйте!
есть переменная $action['date']
в ней хранится unix метка 1524168000 (2018-04-19 20:00:00)
Есть функция:
function unixConvert($date) {
$date = date("Y-m-d H:i:s", $date);
return $date;
}
которая возвращает дату в читабельном виде.
К примеру:
echo unixConvert($action['date'])
функция должна вернуть вот такую строку 2018-04-19 20:00:00 а возвращает 2018-04-19 23:00:00, то есть на 3 часа больше.
Подскажите в чем может быть дело?
Когда в Гринвиче 2018-04-19 20:00:00
, то во временной зоне +3, соответственно 2018-04-19 23:00:00
.
Unix timestamp считается по UTC (зона +0).
Т.е., когда вы передаете в date
временную метку Unix, то функция считает, что это время по Гринвичу, а текстовое представление возвращает с учетом временной зоны сервера.
Попробуйте выполнить date("r", $timestamp)
и увидите, какая выставлена зона.
В качестве самого простого (и не самого оптимального решения) можно расширить вашу функцию, чтобы принимала разницу в часах и учитывала ее:
function unixConvert($date, $timezone) {
$timeshift = $timezone * 3600;
$date = date("Y-m-d H:i:s", $date + $timeshift);
return $date;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Уже два дня ломаю себе голову :( Задача такая: нужно в блок по клику на ссылку поста выводить содержимое поста с учетом шорткодов и стилей Visual...
есть старый сайт, в котором кнопки которые вызывают popup с формами работают с jquerylib