Документация

Начало работы

Модели (models)

Шаблоны (views) и маршрутизация (routes)

Формы

SQL запросы

Сессии и безопасность

Плагины

Дата и время

В MV дата и время хранятся в полях моделей типа "date" и "date_time". В базе данных, (независимо от вида базы данных) они хранятся в обычном SQL формате вида "yyyy-mm-dd hh:mm:ss". При занесении и извлечении данных и базы необходимо пользоваться специальными методами для приведения значений к нужному формату, при помощи класса "I18n", который также отвечает за интернационализацию и локализацию.

Основной формат даты задан в файле локализации, который находится в папке /adminpanel/i18n/локаль/locale.php. Для русского языка он задан в виде "dd.mm.yyyy".

  • formatDate($date [,$format]) - переводит дату из SQL формата (2012-09-15 12:54:23) к текущему формату, заданному в файле локализации, если передать необязательный параметр в виде "only-date", то вернет только дату, а если виде "no-seconds", то секунды будут отброшены. Также формат даты можно передать в виде, аналогичном PHP функции "date()", например "d-m-Y".
  • dateForSQL($date) - переводит дату из текущего форматы в SQL формат (2012-09-15 12:54:23), для записи в базу данных.
  • getCurrentDate([$sql_format]) - возвращает текущую дату в соответствии с форматом локализации. Если передать необязательные параметр в виде "SQL", то текущая дата будет возвращена в SQL формате.
  • getCurrentDateTime([$sql_format]) - возвращает текущую дату и время в соответствии с форматом локализации
  • timestampToDate($timestamp) - переводит временную метку в дату в соответствии с форматом локализации.
  • getMonth($number) - возвращает название месяца по его номеру, например "Февраль", "Март"
  • getMonthCase($number) - возвращает название месяца в родительном падеже, например "Февраля", "Марта"
  • getWeekDayName($date) - возвращает название дня недели, например "Вторник", "Четверг"

Примеры

//Находим новость по id 
$record = $mv -> news -> findRecordById(32);

//Выводим дату, преобразовывая SQL формат
echo I18n :: formatDate($record -> date);

//Форматируем дату
echo I18n :: formatDate($record -> date, "d/m/Y"));

//Выводим дату и время без секунд
echo I18n :: formatDate($record -> date, "no-seconds");

//Выводим только дату
echo I18n :: formatDate($record -> date, "only-date");

//Выводим день недели
echo I18n :: getWeekDayName($record -> date);

//Передаем в запись новости текущую дату
$record -> date = I18n :: getCurrentDateTime();
$record -> update();

//Передаем в запись новости текущую дату через объект модели (сохраним историю изменений)
$news -> read(47) -> setValue("date", I18n :: getCurrentDateTime()) -> update();

//Подсчет количества новостей за текущий день
$number = $news -> countRecords(array("date" => I18n :: getCurrentDate("SQL")));

//Перевод даты из SQL к виду "12 ноября 2011"
public function formatDate($date)
{
    $date = explode("-", $date);
    return $date[2]." ".I18n :: getMonthCase(intval($date[1]))." ".$date[0];
}

Предыдущий раздел

Файлы и изображения

Следующий раздел

Редиректы