⟵ сюдатуда ⟶
  • Учебный курс
  • Создание простых таблиц и полей
  • Коды базовый уровень
  • Вычисление значения кодом
  • Порядок вычисления и ошибка порядка вычисления, как показать поле в месте отличном от порядка вычисления
  • Единица пересчета таблиц, пересчет строк и их порядок
  • Хедер в простых и расчетных таблицах
  • Использование функций
  • На примере функции if и select
  • Работа параметра where и order на примере select
  • Разница между одним значением и списком, операции над списками (sum, min, max, count)
  • Использование math для математических операций
  • Использование str для комбинации текста
  • Фиксация вычисления при выполнении кодов
  • Ручные значения
  • Исполнять код только при добавлении
  • Быстрые переменные $#nd, $#ndt и $#ntn
  • Обработка дат
  • Ошибки расчета и информация по ним
  • Селекты и связь между таблицами
  • Настройки таблиц базовый уровень
  • Префильтры базовый уровень
  • Условное форматирование базовый уровень
  • Коды действия базовый уровень
  • Использование всплывающих окон
  • Циклы базовый уровень
  • Роли и пользователи в web
  • Коды продвинутый уровень
  • Коды действий продвинутый уровень
  • Префильтры продвинутый уровень
  • Настройки полей и таблиц продвинутый уровень
  • Циклы продвинутый уровень
  • Форматирование продвинутый уровень
  • Селект-дерево
  • Выполнения кода действия по расписанию
  • Печать и отправка email
  • Нотификации
  • Взаимодействие по API
  • Адаптивность и секции
  • Графики
  • Вид таблицы панелями и поворот строчной части
  • Анонимные таблицы для неавторизованного доступа
  • Внешние формы для сбора информации
  • Обновление и бэкапирование
  • Дублирование схем и перенос таблиц между базами
  • Консольная утилита bin/totum
  • Обработка дат

    date_processing

    В каком формате дата хранится в поле Дата?

    Поле дата на самом деле хранит строку, но в специальном формате "Y-m-d". Если активен параметр дата-время то "Y-m-d H:i".

    • Y — год полностью.

    • m — порядковый номер месяца с ведущим нулем7

    • d — порядковый номер дня с ведущим нулем.

    • H — часы.

    • i — минуты.

    Отображение в поле для пользователя можно переопределить используя параметр поля формат вывода в интерфейс даты/времени.

    Как преобразовать дату по шаблону, например из текущей даты сделать дату первого числа месяца?

    Например используем функцию dateFormat. Посмотрите у нее в документации на что заменяются буквы формата.

    Например получим первую дату месяца на основе текущей даты:


    =:
    dateFormat(date: $#nd; format: "Y-m-01")

    Как получить первое число следующего месяца по текущей дате?

    Надо получить первую дату месяца и количество дней в месяце. И прибавить количество дней к первой дате месяца:


    = :
    dateAdd(date: $first_day; days: $days; format: "Y-m-d") first_day: dateFormat(date: $#nd; format: "Y-m-01") days: dateFormat(date: $#nd; format: "t")

    Как получить последнее число месяца по текущей дате?

    Все тоже самое, что и в предыдущем примере, но надо один день из количества дней вычесть:


    = :
    dateAdd(date: $first_day; days: $days; format: "Y-m-d") first_day: dateFormat(date: $#nd; format: "Y-m-01") days: dateFormat(date: $#nd; format: "t") - 1

    Как получить текстовый день недели?

    У параметра format в функциях обработки даты за это отвечают

    • "D" – сокращенный вариант

    • "l" (lowercase L) — полное наименование дня недели.

    Если язк схемы русский, а на сервере у php локаль английская (90% случаев), то дополнительно надо указать параметр lang: "ru":


    =:
    dateFormat(date: $#nd; format: "D"; lang: "ru")

    А если на русском языке?

    Используйте параметр lang в значении "ru" в функциях обработки дат.

    Настройка отображения даты в поле влияет на форму ее хранения?

    Нет, отображение при помощи формат вывода в интерфейс даты/времени никак не влияет на форму хранения.

    Сравнение дат?

    Даты сравниваются как строки. Поэтому "2021-12-20" не будет равно "2021-21-20 16:30", но будет сравниваться больше-меньше.

    Для сравнений равно неравно приводите сравниваемые даты к одному формату — либо Y-m-d, либо Y-m-d H:i.

    Если у вас была дата хранящаяся в Y-m-d, то при преобразовании Y-m-d H:i часы и минуты будут 00:00.