- date() – форматирование даты PHP
- Основные параметры шаблона
- дд.мм.ггг (dd.mm.yyyy)
- гггг-мм-дд (yyyy.mm.dd)
- Склонение слов после числительных в PHP
- Единицы измерения товаров
- Экономические единицы
- Масса
- Длина
- Объем
- Площадь
- Дата и время
- Технические единицы
- Тексты
- date
- Список параметров
- Возвращаемые значения
- Ошибки
- Список изменений
- Примеры
- Примечания
- Смотрите также
- User Contributed Notes
date() – форматирование даты PHP
date($format, $timestamp) – форматирует дату/время по шаблону, где:
Результат работы функции зависит от настроек часового пояса, установить его можно следующем образом:
Основные параметры шаблона
Символ | Описание | Пример возвращаемого значения |
---|---|---|
День | ||
j | День месяца без ведущего нуля | от 1 до 31 |
d | День месяца, 2 цифры с ведущим нулём | от 01 до 31 |
l | Полное наименование дня недели | от Sunday до Saturday |
D | День недели, 3 символа | от Mon до Sun |
z | Порядковый номер дня в году | От 0 до 365 |
Неделя | ||
N | Порядковый номер дня недели | от 1 (понедельник) до 7 (воскресенье) |
W | Порядковый номер недели года | Например: 42 (42-я неделя года) |
Месяц | ||
n | Порядковый номер месяца без ведущего нуля | от 1 до 12 |
m | Порядковый номер месяца с ведущим нулём | от 01 до 12 |
F | Полное название месяца | от January до December |
M | Сокращенное наименование месяца, 3 символа | от Jan до Dec |
t | Количество дней в месяце | от 28 до 31 |
Год | ||
Y | Год, 4 цифры | 2019 |
y | Год, 2 цифры | 19 |
Время | ||
g | Часы в 12-часовом формате без ведущего нуля | от 1 до 12 |
h | Часы в 12-часовом формате с ведущим нулём | от 01 до 12 |
G | Часы в 24-часовом формате без ведущего нуля | от 0 до 23 |
H | Часы в 24-часовом формате с ведущим нулём | от 00 до 23 |
i | Минуты с ведущим нулём | от 00 до 59 |
s | Секунды с ведущим нулём | от 00 до 59 |
v | Миллисекунды | 123 |
Полная дата/время | ||
c | Дата в формате ISO 8601 | 2004-02-12T15:19:21+00:00 |
r | Дата в формате RFC 2822 | Thu, 21 Dec 2000 16:01:07 +0200 |
дд.мм.ггг (dd.mm.yyyy)
Самый распространенные форматы: dd.mm.yyyy и dd.mm.yyyy hh:ss .
echo date('d.m.Y'); // 21.07.2023 echo date('d.m.Y H:i'); // 21.07.2023 11:47 echo date('d.m.Y H:i:s'); // 21.07.2023 11:47:55
гггг-мм-дд (yyyy.mm.dd)
Используется в MySQL тип поля DATE.
Склонение слов после числительных в PHP
В интернет магазинах, CRM и других сервисах для «правильности» есть необходимость склонять существительных после чисел или как это еще называют – плюрализация, например: 1 товар, 2 товара, 5 товаров.
Реализовать такой вывод можно с помощью функции:
/** * Склонение существительных после числительных. * * @param string $value Значение * @param array $words Массив вариантов, например: array('товар', 'товара', 'товаров') * @param bool $show Включает значение $value в результирующею строку * @return string */ function num_word($value, $words, $show = true) < $num = $value % 100; if ($num >19) < $num = $num % 10; >$out = ($show) ? $value . ' ' : ''; switch ($num) < case 1: $out .= $words[0]; break; case 2: case 3: case 4: $out .= $words[1]; break; default: $out .= $words[2]; break; >return $out; >
Параметр $words – массив, в котором:
- первый элемент задает текст для единичных значений,
- второй для значений с 2-х до 4-х,
- третий для всех остальных.
echo num_word(1, array('рубль', 'рубля', 'рублей')) . '
'; echo num_word(3, array('рубль', 'рубля', 'рублей')) . '
'; echo num_word(9, array('рубль', 'рубля', 'рублей')) . '
';
Единицы измерения товаров
echo num_word($value, array('товар', 'товара', 'товаров'); echo num_word($value, array('штука', 'штуки', 'штук'); echo num_word($value, array('упаковка', 'упаковки', 'упаковок'); echo num_word($value, array('коробка', 'коробки', 'коробок'); echo num_word($value, array('пачка', 'пачки', 'пачек'); echo num_word($value, array('ящик', 'ящика', 'ящиков'); echo num_word($value, array('комплект', 'комплекта', 'комплектов'); echo num_word($value, array('экземпляр', 'экземпляра', 'экземпляров'); echo num_word($value, array('рулон', 'рулона', 'рулонов'); echo num_word($value, array('лист', 'листа', 'листов'); echo num_word($value, array('погонный метр', 'погонных метра', 'погонных метров'));
Экономические единицы
echo num_word($value, array('процент', 'процента', 'процентов')); echo num_word($value, array('рубль', 'рубля', 'рублей')); echo num_word($value, array('доллар', 'доллара', 'долларов')); echo num_word($value, array('условная единица', 'условные единицы', 'условных единиц'));
Масса
echo num_word($value, array('тонна', 'тонны', 'тонн')); echo num_word($value, array('центнер', 'центнера', 'центнеров')); echo num_word($value, array('килограмм', 'килограмма', 'килограммов')); echo num_word($value, array('грамм', 'грамма', 'граммов')); echo num_word($value, array('миллиграмм', 'миллиграмма', 'миллиграммов'));
Длина
echo num_word($value, array('километр', 'километра', 'километров')); echo num_word($value, array('метр', 'метра', 'метров')); echo num_word($value, array('сантиметр', 'сантиметра', 'сантиметров')); echo num_word($value, array('миллиметр', 'миллиметра', 'миллиметров'));
Объем
echo num_word($value, array('куб', 'куба', 'кубов')); echo num_word($value, array('литр', 'литра', 'литров')); echo num_word($value, array('миллилитр', 'миллилитра', 'миллилитров'));
Площадь
echo num_word($value, array('гектар', 'гектара', 'гектаров')); echo num_word($value, array('акр', 'акра', 'акров')); echo num_word($value, array('сотка', 'сотки', 'соток')); echo num_word($value, array('квадратный метр', 'квадратных метра', 'квадратных метров'));
Дата и время
echo num_word($value, array('год', 'года', 'лет')); echo num_word($value, array('месяц', 'месяца', 'месяцев')); echo num_word($value, array('день', 'дня', 'дней')); echo num_word($value, array('сутки', 'суток', 'суток')); echo num_word($value, array('час', 'часа', 'часов')); echo num_word($value, array('минута', 'минуты', 'минут')); echo num_word($value, array('секунда', 'секунды', 'секунд')); echo num_word($value, array('микросекунда', 'микросекунды', 'микросекунд')); echo num_word($value, array('миллисекунда', 'миллисекунды', 'миллисекунд'));
Технические единицы
echo num_word($value, array('оборот в минуту', 'оборотов в минуту', 'оборотов в минуту')); echo num_word($value, array('километр в час', 'километра в час', 'километров в час')); echo num_word($value, array('лошадиная сила', 'лошадиные силы', 'лошадиных сил')); echo num_word($value, array('градус', 'градуса', 'градусов')); echo num_word($value, array('калория', 'калории', 'калорий'));
Тексты
echo num_word($value, array('параграф', 'параграфа', 'параграфов')); echo num_word($value, array('предложение', 'предложения', 'предложений')); echo num_word($value, array('слово', 'слова', 'слов')); echo num_word($value, array('знак', 'знака', 'знаков')); echo num_word($value, array('символ', 'символа', 'символов'));
date
Возвращает строку, отформатированную в соответствии с указанным в параметре format шаблоном. Используется метка времени, заданная параметром timestamp (метка времени Unix), или текущее системное время, если параметр timestamp не задан. Таким образом, параметр timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time() .
Метки времени Unix не обрабатывают часовые пояса. Используйте класс DateTimeImmutable и его метод форматирования DateTimeInterface::format() для форматирования информации о дате/времени с привязкой к часовому поясу.
Список параметров
Замечание: Функция date() всегда будет генерировать 000000 в качестве микросекунд, поскольку она принимает параметр int , тогда как DateTime::format() поддерживает микросекунды, если DateTime был создан с микросекундами.
Необязательный параметр timestamp представляет собой метку времени типа int , по умолчанию равную текущему локальному времени, если timestamp не указан или null . Другими словами, значение по умолчанию равно результату функции time() .
Возвращаемые значения
Возвращает отформатированную строку с датой.
Ошибки
Каждый вызов к функциям даты/времени при неправильных настройках часового пояса сгенерирует ошибку уровня E_WARNING , если часовой пояс некорректный. Смотрите также date_default_timezone_set()
Список изменений
Версия | Описание |
---|---|
8.0.0 | timestamp теперь допускает значение null. |
Примеры
Пример #1 Примеры использования функции date()
// установка часового пояса по умолчанию.
date_default_timezone_set ( ‘UTC’ );
?php
// выведет примерно следующее: Monday
echo date ( «l» );
// выведет примерно следующее: Monday 8th of August 2005 03:12:46 PM
echo date ( ‘l jS \of F Y h:i:s A’ );
// выведет: July 1, 2000 is on a Saturday
echo «July 1, 2000 is on a » . date ( «l» , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));
/* пример использования константы в качестве форматирующего параметра */
// выведет примерно следующее: Mon, 15 Aug 2005 15:12:46 UTC
echo date ( DATE_RFC822 );
// выведет примерно следующее: 2000-07-01T00:00:00+00:00
echo date ( DATE_ATOM , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));
?>
Чтобы запретить распознавание символа как форматирующего, следует экранировать его с помощью обратного слеша. Если экранированный символ также является форматирующей последовательностью, то следует экранировать его повторно.
Пример #2 Экранирование символов в функции date()
Для вывода прошедших и будущих дат удобно использовать функции date() и mktime() .
Пример #3 Пример совместного использования функций date() и mktime()
$tomorrow = mktime ( 0 , 0 , 0 , date ( «m» ) , date ( «d» )+ 1 , date ( «Y» ));
$lastmonth = mktime ( 0 , 0 , 0 , date ( «m» )- 1 , date ( «d» ), date ( «Y» ));
$nextyear = mktime ( 0 , 0 , 0 , date ( «m» ), date ( «d» ), date ( «Y» )+ 1 );
?>?php
Замечание:
Данный способ более надёжен, чем простое вычитание и прибавление секунд к метке времени, поскольку позволяет при необходимости гибко осуществить переход на летнее/зимнее время.
Ещё несколько примеров использования функции date() . Важно отметить, что следует экранировать все символы, которые необходимо оставить без изменений. Это справедливо и для тех символов, которые в текущей версии PHP не распознаются как форматирующие, поскольку это может быть введено в следующих версиях. Для экранировании управляющих последовательностей (например, \n) следует использовать одинарные кавычки.
Пример #4 Форматирование с использованием date()
// Предположим, что текущей датой является 10 марта 2001, 5:16:18 вечера,
// и мы находимся в часовом поясе Mountain Standard Time (MST)
?php
$today = date ( «F j, Y, g:i a» ); // March 10, 2001, 5:16 pm
$today = date ( «m.d.y» ); // 03.10.01
$today = date ( «j, n, Y» ); // 10, 3, 2001
$today = date ( «Ymd» ); // 20010310
$today = date ( ‘h-i-s, j-m-y, it is w Day’ ); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date ( ‘\i\t \i\s \t\h\e jS \d\a\y.’ ); // it is the 10th day.
$today = date ( «D M j G:i:s T Y» ); // Sat Mar 10 17:16:18 MST 2001
$today = date ( ‘H:m:s \m \i\s\ \m\o\n\t\h’ ); // 17:03:18 m is month
$today = date ( «H:i:s» ); // 17:16:18
$today = date ( «Y-m-d H:i:s» ); // 2001-03-10 17:16:18 (формат MySQL DATETIME)
?>
Для форматирования дат на других языках вместо функции date() можно использовать метод IntlDateFormatter::format() .
Примечания
Замечание:
Для получения метки времени из строкового представления даты можно воспользоваться функцией strtotime() . Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (например, функция MySQL » UNIX_TIMESTAMP).
Временную метку начала запроса можно получить из поля $_SERVER[‘REQUEST_TIME’] .
Смотрите также
- DateTimeImmutable::__construct() — Возвращает новый объект DateTimeImmutable
- DateTimeInterface::format() — Возвращает дату, отформатированную согласно переданному формату
- gmdate() — Форматирует дату/время по Гринвичу
- idate() — Преобразует локальное время/дату в целое число
- getdate() — Возвращает информацию о дате/времени
- getlastmod() — Получает время последней модификации страницы
- mktime() — Возвращает метку времени Unix для заданной даты
- IntlDateFormatter::format() — Форматирует значение даты/времени в виде строки
- time() — Возвращает текущую метку системного времени Unix
- Предопределённые константы даты и времени
User Contributed Notes
- Функции даты и времени
- checkdate
- date_add
- date_create_from_format
- date_create_immutable_from_format
- date_create_immutable
- date_create
- date_date_set
- date_default_timezone_get
- date_default_timezone_set
- date_diff
- date_format
- date_get_last_errors
- date_interval_create_from_date_string
- date_interval_format
- date_isodate_set
- date_modify
- date_offset_get
- date_parse_from_format
- date_parse
- date_sub
- date_sun_info
- date_sunrise
- date_sunset
- date_time_set
- date_timestamp_get
- date_timestamp_set
- date_timezone_get
- date_timezone_set
- date
- getdate
- gettimeofday
- gmdate
- gmmktime
- gmstrftime
- idate
- localtime
- microtime
- mktime
- strftime
- strptime
- strtotime
- time
- timezone_abbreviations_list
- timezone_identifiers_list
- timezone_location_get
- timezone_name_from_abbr
- timezone_name_get
- timezone_offset_get
- timezone_open
- timezone_transitions_get
- timezone_version_get