date_calc

Эта функция позволяет работать с датами и временем: прибавлять или вычитать секунды, минуты, часы, дни, недели, месяцы и годы. Формат записи следующий:Эта функция позволяет добавлять и вычитать секунд

Формат записи следующий:

[date_calc]Формат даты|модификатор|значение даты[/date_calc]

[date_calc]%d.%m.%Y %H:%M:%S|+1 day[/date_calc]

Аргументы

Функция принимает 3 аргумента (разделяются символом |):

  1. Формат (обязательный) Указывает, в каком виде будет возвращена дата. Используются плейсхолдеры, предоставленные в таблице ниже. Также можно указать timestamp, ts, unix или unixtime — тогда результатом будет число секунд в формате Unix-времени. Популярные варианты значений:

Модидфикаторы
Формат
Назначение

%d.%m.%Y %H:%M:%S

дд.мм.уууу чч:мм например: 30.01.2028 12:34:56

Стандартная дата в Европейском формате

%Y-%m-%dT%H:%M:%S

гггг-мм-ддTчч:мм:сс например: 2028-01-30T12:34:56

Международный стандарт ISO 8601 Чаще всего используется в API

ts или timestamp или unix

unixtime например: 1832837696

Unix timestamp Чаще всего используется в API

  1. Модификатор (необязательный) Определяет, какие действия нужно провести с датой. Запись вида:

  • +1 day → прибавить 1 день

  • -2 hours → вычесть 2 часа

  • +3 months → прибавить 3 месяца

Могут использоваться совместно, например запись: [date_calc]%d.%m.%Y %H:%M:%S|+1 day -1 hour +15 minutes[/date_calc] Добавит 23 часа и 15 минут к текущей дате

  1. Текущее значение (необязательный) От какой даты вести расчёт. По умолчанию — текущая дата и время. Можно передавать:

Все аргументы поддерживают вставку переменных

💟Как задать вопрос в поддержку?

Формат записи времени

День

Формат
Описание
Результат примера

%a

Сокращённое название дня недели

Сб

%A

Полное название дня недели

Суббота

%d

Двухзначное представление дня месяца (с ведущими нулями)

29 (От 01 до 31)

%e

День месяца, с ведущим пробелом, если он состоит из одной цифры.

1 (От 1 до 31)

%j

Порядковый номер в году, 3 цифры с ведущими нулями

029 (От 001 до 366)

%u

Порядковый номер дня недели согласно стандарту ISO-8601

6 (От 1 (понедельник) до 7 (воскресенье))

%w

Порядковый номер дня недели

6 (От 0 (воскресенье) до 6 (суббота))

Неделя

%U

Порядковый номер недели в указанном году, начиная с первого воскресенья в качестве первой недели

13 (для полной 13-й недели года)

%V

Порядковый номер недели в указанном году в соответствии со стандартом ISO-8601:1988, счёт начинается с той недели, которая содержит минимум 4 дня, неделя начинается с понедельника

От 01 до 53 (где 53 указывает на перекрывающуюся неделю)

%W

Порядковый номер недели в указанном году, начиная с первого понедельника в качестве первой недели

46 (для 46-й недели года, начинающейся с понедельника)

Месяц

%b

Аббревиатура названия месяца, в соответствии с настройками локали

От Янв до Дек

%B

Полное название месяца, в соответствии с настройками локали

От Января до Декабря

%h

Аббревиатура названия месяца, в соответствии с настройками локали (псевдоним %b)

От Янв до Дек

%m

Двухзначный порядковый номер месяца

От 01 (январь) до 12 (декабрь)

Год

%C

Двухзначный порядковый номер столетия (год, делённый на 100, усечённый до целого)

19 для 20-го века

%g

Двухзначный номер года в соответствии со стандартом ISO-8601:1988 (смотрите %V)

Пример: 09 для недели 6 января 2009

%G

Полная четырёхзначная версия %g

Пример: 2009 для недели 3 января 2009

%y

Двухзначный порядковый номер года

Пример: 09 для 2009, 79 для 1979

%Y

Четырёхзначный номер года

Пример: 2038

Время

%H

Двухзначный номер часа в 24-часовом формате

От 00 до 23

%k

Часы в 24-часовом формате, с пробелом перед одиночной цифрой

От 0 до 23

%I

Двухзначный номер часа в 12-часовом формате

От 01 до 12

%l (строчная 'L')

Час в 12-часовом формате, с пробелом перед одиночной цифрой

От 1 до 12

%M

Двухзначный номер минуты

От 00 до 59

%p

'AM' или 'PM' в верхнем регистре, в зависимости от указанного времени

Пример: AM для 00:31, PM для 22:23

%P

'am' или 'pm' в зависимости от указанного времени

Пример: am для 00:31, pm для 22:23

%r

То же что и "%I:%M:%S %p"

Пример: 09:34:17 PM для 21:34:17

%R

То же что и "%H:%M"

Пример: 00:35 для 12:35 AM, 16:44 для 4:44 PM

%S

Двухзначный номер секунды

От 00 до 59

%T

То же что и "%H:%M:%S"

Пример: 21:34:17 для 09:34:17 PM

%X

Предпочитаемое отображение времени в зависимости от локали, без даты

Пример: 03:59:16 или 15:59:16

%z

Смещение часового пояса относительно UTC. Не реализовано в Windows, подробности смотрите ниже.

Пример: -0500 для US Eastern Time

%Z

Аббревиатура часового пояса.

Пример: EST для Eastern Time

Сложение и вычитание времени

Сложение

n = любое число, которое нужно указать, чтобы функция отрабатывала корректно

Значение
Пример
Пояснение

+n hours

[date_calc]%H|+1 hours[/date_calc]

Прибавление к текущей дате + 1 час

+n day

[date_calc]%d.%m|+1 day[/date_calc]

Прибавление к текущей дате + 1 день

+n week

[date_calc]%d.%m|+1 week[/date_calc]

Прибавление к текущей дате + 1 неделя

+n month

[date_calc]%d.%m|+1 month[/date_calc]

Прибавление к текущей дате + 1 месяц

+n years

[date_calc]%d.%m.%Y|+1 years[/date_calc]

Прибавление к текущей дате + 1 год

Вычитание

Значение
Пример
Пояснение

-n hours

[date_calc]%H|-1 hours[/date_calc]

Вычитание от текущей даты - 1 час

-n day

[date_calc]%d.%m|-1 day[/date_calc]

Вычитание от текущей даты - 1 день

-n week

[date_calc]%d.%m|-1 week[/date_calc]

Вычитание от текущей даты - 1 неделя

-n month

[date_calc]%d.%m|-1 month[/date_calc]

Вычитание от текущей даты - 1 месяц

-n years

[date_calc]%d.%m.%Y|-1 years[/date_calc]

Вычитание от текущей даты - 1 год

Примеры читабельных выражений

Пример
Что означает

now

Текущий момент (по умолчанию)

yesterday

Вчера

tomorrow

Завтра

first day of this month

Первый день текущего месяца

last day of this month

Последний день текущего месяца

first day of next month

Первый день следующего месяца

last day of next month

Последний день следующего месяца

monday this week

Понедельник текущей недели

sunday next week

Воскресенье следующей недели

Последнее обновление

Это было полезно?