Руководтсво администратора/разработчика

Документация

Функции

Дата, время

Функции по работе с датой и временем


timefresh

Триггер актуального времени

Фунция timefresh показывает - переданная дата до текущего времени?

Входные данные - любое значение в формате UTC
Выходные данные - "true" или "false" текстовое значение

Пример:

{{ $flag := timefresh "2006-01-02 15:04:05 +0000 UTC"}}

"true" - переданная дата "свежая", т.е. еще не наступила

"false" - переданная дата уже прошла.


timenow

Текущее время

Функция timenow возвращает текущую дату/время в формате времени UTC ().

Формат

timenow

Пример

{{ timenow }}

>> 2006-02-01 15:04:05 +0000 UTC


timeformat

Дата в заданном формате

Функция timeformat возвращает строковое значение в заданном формате. В случае невозможного преобразования возвращает текстовое значение ошибкиВозвращаемый тип - строка

Формат

timeformat input mask format

input - преобразуемая строка (любой тип)

mask - текстовое значение формата преобразуемой строки (см. timeparse)

format - текстовое значение формата даты, в которую преобразуем строку

Пример

{{ timeformat "2016-01-02 23:14:50 +0000" "2006-01-02 15:04:05 +0000" "2006.01.02" }}

>> 2016.01.02


timeyear

Возвращает текущий год

Функция timeyear возвращает год переданного времени (в формате времени).

Формат

timeyear time

time - значение, преобразованное в формат времени (как правило возращаемое фукнцией timeparse или timenow)

Пример

{{ timeyear timenow }}

>> 2019


timemount

Возвращаем месяц

Функция timemount возвращает месяц переданного времени (в формате времени).

Формат

timemount time

time - значение, преобразованное в формат времени (как правило возращаемое фукнцией timeparse или timenow)

Пример

{{ timemount timenow }}

>> November


timeday

Возвращает дату

Функция timeday возвращает число переданного времени (в формате времени).

Формат

timeday time

time - значение, преобразованное в формат времени (как правило возращаемое фукнцией timeparse или timenow)

Пример

{{ timeday timenow }}

>> 12


timeparse

Преобразование в формат даты

Функция timeparse возвращает значение в формате даты, преобразованное из строкового значения.  Возвращаемый тип - дата

Формат

timeparse input mask

input - преобразуемая строка (любой тип)

mask - текстовое значение формата преобразования

Описание параметра format

Для преобразование необходимо составить формат передаваемого значения даты использую таблицу:

stdLongMonth      = "January"
stdMonth          = "Jan"
stdNumMonth       = "1"
stdZeroMonth      = "01"
stdLongWeekDay    = "Monday"
stdWeekDay        = "Mon"
stdDay            = "2"
stdUnderDay       = "_2"
stdZeroDay        = "02"
stdHour           = "15"
stdHour12         = "3"
stdZeroHour12     = "03"
stdMinute         = "4"
stdZeroMinute     = "04"
stdSecond         = "5"
stdZeroSecond     = "05"
stdLongYear       = "2006"
stdYear           = "06"
stdPM             = "PM"
stdpm             = "pm"
stdTZ             = "MST"
stdISO8601TZ      = "Z0700"  // prints Z for UTC
stdISO8601ColonTZ = "Z07:00" // prints Z for UTC
stdNumTZ          = "-0700"  // always numeric
stdNumShortTZ     = "-07"    // always numeric
stdNumColonTZ     = "-07:00" // always numeric

Например:

"2006-02-01 15:04:05", где

2006 - показывает, что певым значенмем будет передан;
02 - через тире (-) месяц
01 - через тире (-) день
потом пробел
15 - часы в формате 24-часа
04 - минуты
05 - секунды

Таким образом, заданный формат преобразует переданное строковое значение в объект даты, иначе выдаст ошибку преобразования с описанием ошибки.

или использовать заданные варианты шаблонов:

UTC      = "2006-02-01 15:04:05 -0700 UTC" // по-умолчанию при создании текущей даты
ANSIC       = "Mon Jan _2 15:04:05 2006"
UnixDate    = "Mon Jan _2 15:04:05 MST 2006"
RubyDate    = "Mon Jan 02 15:04:05 -0700 2006"
RFC822      = "02 Jan 06 15:04 MST"
RFC822Z     = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
RFC850      = "Monday, 02-Jan-06 15:04:05 MST"
RFC1123     = "Mon, 02 Jan 2006 15:04:05 MST"
RFC1123Z    = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
RFC3339     = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
Kitchen     = "3:04PM"
// Метки времени
Stamp      = "Jan _2 15:04:05"
StampMilli = "Jan _2 15:04:05.000"
StampMicro = "Jan _2 15:04:05.000000"
StampNano  = "Jan _2 15:04:05.000000000"

Например

"RFC3339"

В этом случае, к преобразуемой строке будет применен формат шаблона RFC3339,  а именно "2006-01-02T15:04:05Z07:00". Данный способ удобен, если мы знаем, что данные приходят (например из базы данных) в формате RFC3339.

Пример

{{ timeparse "2016-01-02 19:23:23" "2006-01-02 15:04:05" }}

>> 2016-01-02 19:23:23 +0000 UTC