@LebedevFF

Конвертер даты как в вк, как сделать?

Получаю дату последнего входа пользователя вк, сервер работает по гринвичу, но по какой зоне вк? и Как поправить подобную ерунду(выглядит стремно знаю)
function ConverUnixDate($data = Null){
    if($data == Null){
        $data = date('U');
    }
    $time = $data + 3600*3;
    $array = array('сейчас','ceгодня','вчера','час','два','назад','ошибка','в');
    $M =  array( 1 => 'января' , 'февраля' , 'марта' , 'апреля' , 'мая' , 'июня' , 'июля' , 'августа' , 'сентября' , 'октября' , 'ноября' , 'декабря' );
    $data = date('U') - $data;
    if($data<0){return $array[6];}
    if(abs($data)>0 AND abs($data)<=3600){return intval(date('i')).' min '.$array[5];}
    if(abs($data)>3600 AND abs($data)<=7200){return $array[4].' часа'.' '.$array[5];}
    if(abs($data)>7200 AND abs($data)<=86400){return $array[1].' '.$array[7].' '.date('G:i', $time);}
    if(abs($data)>86400 AND abs($data)<=(86400*2)){return $array[2].' '.$array[7].' '.date('G:i', $time);}
    if(abs($data)>(86400*2)){return date('j', $time).' '.$M[date('n', $time)].' '.date('o', $time); }
}
echo ConverUnixDate(1569650612);
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
ВК вернет число секунд с начала эпохи Unix. Текущее время в таком же формате time()
Вычитаете.
Смотрите, насколько велико различие цепочкой if .. else и выводите релевантную строку.

Чтобы показать «сегодня» или «вчера», понадобится знать часовой пояс пользователя – это этого зависит граница суток в формате Unix time.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Комментировать
opium
@opium
Просто люблю качественно работать
Так там таймстемп оно без таймзоны
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы