VK Video
В каком формате дата хранится в поле Дата?
Поле дата на самом деле хранит строку, но в специальном формате "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
.