аватар Автор: Сергей Касаткин | 05 июля 2013 18:36

Статьи / PHP /

Формат даты как в социальных сетях. Функция PHP

Как сделать вывод даты и времени как в социальных сетях?

Например, Сегодня 9:08, Вчера 19:31 или 04 июля 2013 13:54
Предлагаю Вашему вниманию функцию PHP по созданию даты.

Для этого создадим файл function.php в папке include. Файлы можете назвать и расположить по Вашему усмотрению. В файл с функцией вставляем следующий код.

Код PHP (файл function.php)

// задаём функцию формата даты и записи сегодня и вчера
 function data_form($string) {
     $monn = array(
       '',
       'января',
       'февраля',
       'марта',
       'апреля',
       'мая',
       'июня',
       'июля',
       'августа',
       'сентября',
       'октября',
       'ноября',
       'декабря'
     );
     //Разбиваем дату в массив
     $a = preg_split("/[^\d]/",$string); 
     $today = date('Ymd');
     if(($a[0].$a[1].$a[2])==$today) {
       //Если сегодня
       return("Сегодня ".$a[3].":".$a[4]);
       
     } else {
       $b = explode("-",date("Y-m-d"));
       $tom = date("Ymd",mktime(0,0,0,$b[1],$b[2]-1,$b[0]));
       if(($a[0].$a[1].$a[2])==$tom) {
         //Если вчера
         return("Вчера ".$a[3].":".$a[4]);
         
       } else {
         //Если позже
         $mm = intval($a[1]);
         return($a[2]." ".$monn[$mm]." ".$a[0]." ".$a[3].":".$a[4]);
       }
     }
   }

Теперь используем функцию

Код PHP (файл example.php)

include_once "include/function.php"; // пишем путь к файлу с функцией
$date = date("Ymd G:i");// вставляем либо статическую дату, либо из Базы Данных
$format_date = data_form($date); // получаем дату а-ля "Сегодня 18:00"


У меня функция PHP отображает другое время. Что делать?


Скорее всего на Вашему сервере установлено другое время. Возможно, он расположен в другом часовом поясе. Например, Вы в Туле купили хостинг, который располагается в Казани. На сервере соответственно будет установлено время +1, на час больше. Для этого в PHP перед кодом функции нужно вставить следующую строку принудительно указанным часовым поясом. Выглядит следующим образом.

date_default_timezone_set('Europe/Moscow'); // задаём часовой пояс по Москве


Примеры других часовых поясов ЗДЕСЬ.
 



Похожие статьи


Комментарии к статье (vk.com)