Почему при только при повторном вызове возвращается корректное время?

Очень странную ситуацию отловил при переезде с дебиан на центос на другой сервер..

Во вьюхе есть вывод времени такой:
var_dump(HtmlPurifier::process(NewTime::new_time(strtotime('2018-06-15 13:26:27'))));
var_dump(HtmlPurifier::process(NewTime::new_time(strtotime('2018-06-15 13:26:27'))));


Класс NewTime когда давно просто взял готовый для перевода в читаемый формат даты:

<?php

namespace app\models;


class NewTime{

    public static function new_time($a) { // преобразовываем время в нормальный вид
        date_default_timezone_set('Europe/Moscow');
        $ndate = date('d.m.Y', $a);
        $ndate_time = date('H:i', $a);
        $ndate_exp = explode('.', $ndate);
        $nmonth = array(
            1 => 'января',
            2 => 'февраля',
            3 => 'марта',
            4 => 'апреля',
            5 => 'мая',
            6 => 'июня',
            7 => 'июля',
            8 => 'августа',
            9 => 'сентября',
            10 => 'октября',
            11 => 'ноября',
            12 => 'декабря'
        );

        foreach ($nmonth as $key => $value) {
            if($key == intval($ndate_exp[1])) $nmonth_name = $value;
        }

        if($ndate == date('d.m.Y')) return 'сегодня в '.$ndate_time;
        elseif($ndate == date('d.m.Y', strtotime('-1 day'))) return 'вчера в '.$ndate_time;
        else return $ndate_exp[0].' '.$nmonth_name.' '.$ndate_exp[2].' в '.$ndate_time;
    }

}


так вот, во вьюхе казалось бы должно выводиться 2 значения одинаковых таких:

15 июня 2018 в 13:26
15 июня 2018 в 13:26

но выводится не так, а вот так:
15 июня 2018 в 16:26
15 июня 2018 в 13:26

т.е. при первом вызове почему-то плюсует 3 часа, а при втором уже нет ) Что думаете? Из-за чего так?

Пока пофиксил просто холостым вызовом в начале и в итоге возвращается корректное время..
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы