Дата и время

В этой статье вы узнаете, как использовать функцию date_format() для работы с датами и временем в формулах.

1. Справочник ключевых слов и их значений

Основные единицы времени

Ниже приведены слова, которые обозначают промежутки времени: часы, дни, годы и т.д. Их можно использовать для прибавления или вычитания времени.

  1. Год(ы) Ключевые слова: year (год), years (годы). Примеры:

    • +1 year — прибавить 1 год к текущей дате.

    • -2 years — вычесть 2 года из текущей даты.

  2. Месяц(ы) Ключевые слова: month (месяц), months (месяцы). Примеры:

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

    • last month — предыдущий месяц.

  3. День (дни) Ключевые слова: day (день), days (дни). Примеры:

    • +5 days — через 5 дней.

    • last day — последний день месяца.

  4. Час(ы) Ключевые слова: hour (час), hours (часы). Пример: +24 hours — через 24 часа (то же, что +1 день).

  5. Минут(ы) Ключевые слова: minute (минута), minutes (минуты). Пример: -30 minutes — 30 минут назад.

  6. Секунд(ы) Ключевые слова: second (секунда), seconds (секунды). Пример: +5 seconds — через 5 секунд.

Слова для указания времени

Эти слова помогают задать конкретные моменты времени.

  1. Сейчас Ключевое слово: now (сейчас). Пример: now — текущее время (используется по умолчанию).

  2. Сегодня/Завтра/Вчера

    • today (сегодня) — начало текущего дня (00:00:00).

    • tomorrow (завтра) — завтра в 00:00:00.

    • yesterday (вчера) — вчера в 00:00:00.

  3. Начало/конец дня

    • midnight (полночь) — то же, что today (00:00:00).

    • noon (полдень) — 12:00:00 текущего дня.

Слова для сдвига времени

Эти слова помогают перемещаться между периодами (например, "предыдущий месяц" или "следующий понедельник").

  1. Первый/Последний

    • first (первый) — первый день/месяц и т.д.

    • last (последний) — последний день/месяц. Примеры:

    • first day of January — 1 января.

    • last month — последний месяц (например, если сейчас апрель, вернёт март).

  2. Предыдущий/Следующий

    • previous (предыдущий) — переместиться к предыдущему периоду.

    • next (следующий) — переместиться к следующему периоду. Примеры:

    • next Monday — следующий понедельник.

    • previous year — предыдущий год.

  3. Этот Ключевое слово: this (этот). Пример: this week — текущая неделя.

Специальные слова

  1. Рабочие дни Ключевое слово: weekday (рабочий день). Рабочие дни — это понедельник–пятница. Пример: +1 weekday — пропустить выходные.

    • Если сегодня пятница (25 августа), +1 weekday вернёт понедельник (28 августа).

  2. Дни недели Можно использовать сокращения:

    • mon (понедельник), tue (вторник), ..., sun (воскресенье). Примеры:

    • last thu — предыдущий четверг.

    • next sat — следующая суббота.

  3. Восход/Закат Ключевые слова: sunrise (восход), sunset (закат). Важно! Для работы нужны географические координаты в настройках PHP.

Как комбинировать даты и слова

Вы можете смешивать конкретные даты (например, 12/31) с относительными словами (например, previous year).

Примеры:

  • 12/31 previous year — 31 декабря предыдущего года.

  • 2025-01-01 +1 month — 1 февраля 2025.

Порядок слов важен!

  • previous year 12/31 — то же, что 12/31 previous year.

  • 12/31 +1 year — 31 декабря следующего года.


2. Примеры выражений

Пример 1: Простые сдвиги

date_format('+3 days') 
// Через 3 дня от текущей даты.

Пример 2: Начало/конец периода

date_format('first day of next month')
// Первый день следующего месяца. 
// Если сейчас 15 марта → 1 апреля.

Пример 3: Рабочие дни

date_format('2023-12-25 +1 weekday')
// Если 25 декабря — понедельник, результат — 26 декабря (вторник).  
// Если 25 декабря — пятница, результат — 28 декабря (понедельник, пропущены выходные).

Пример 4: Комбинация даты и относительного слова

date_format('03/15 previous year')
// 15 марта предыдущего года. 
// Если сейчас 2024 → 15 марта 2023.

Пример 5: Время и дата

date_format('next Friday 14:30:00')
// Следующая пятница в 14:30:00.

Пример 6: Ошибочная дата

date_format('02/30/2023') 
// 30 февраля не существует → вернёт ошибку.

Пример 7: Смещение на квартал

date_format('+3 months')
// Через 3 месяца (один квартал).  
// Если сейчас 15 марта 2024 → 15 июня 2024.

Пример 8: Начало текущего квартала

date_format('first day of January this year')
// 1 января 2024 (начало первого квартала).  
// Аналогично для April/July/October.

Пример 9: Конец предыдущего квартала

date_format('last day of last month -2 months')
// Пример для текущего месяца (июнь 2024):  
// 1. last month → май 2024  
// 2. -2 months → март 2024  
// 3. last day of → 31 марта 2024 (конец первого квартала).

Пример 10: Через два триместра

date_format('+6 months')
// Через 6 месяцев (два триместра).  
// Если сейчас 10 февраля 2024 → 10 августа 2024.

Пример 11: Первый день следующего квартала

date_format('first day of +3 months')
// Первый день квартала, который начнётся через 3 месяца.  
// Если сейчас 20 апреля 2024 → 1 июля 2024.

3. Советы

  1. Порядок слов

    • Сначала указывайте относительные слова (previous year), затем дату (12/31).

    • Неправильно: 12/31 previous yearПравильно: previous year 12/31 (работают оба варианта, но лучше придерживаться одного стиля).

  2. Разделители дат Можно использовать /, ., - или пробелы:

    • 31.12.2023, 12/31/2023, 2023-12-31.

  3. Проверяйте даты

    • Некорректные даты (например, 2023-13-01) вернут ошибку.

    • Всегда проверяйте результат:

      date: date_format('неправильная дата')
      date === false ? 'Ошибка' : 'Тут ваше выражение'
  4. Временные зоны Указывайте зону, если работаете с разными регионами:

    date_format('2023-10-01 14:00 Europe/Moscow')

4. Частые ошибки

  1. Путаница с форматами дат

    • 04/05/2023 может быть прочитано как 4 мая или 5 апреля в зависимости от настроек локали.

    • Используйте однозначный формат YYYY-MM-DD: 2023-05-04.

  2. Неправильные дни недели

    • next mon — верно, next monday — тоже верно (регистр не важен).

    • next mnday — ошибка (опечатка).

  3. Смешивание времени и даты

    • Правильно: next year 12/31 14:00.

    • Неправильно: 14:00 next year 12/31 (время должно быть в конце).


В статье приведены все основные сценарии. Если что-то не работает, проверьте:

  • Правильность написания ключевых слов.

  • Корректность даты (например, нет ли 30 февраля).

  • Порядок слов в выражении.

Last updated

Was this helpful?