RU Временные интервалы - Mingun/d3 GitHub Wiki

ВикиСправка по APIРабота со временемВременн́ые интервалы
English | Русский

Временн́ые интервалы непостоянны! Например, в минуте 60 секунд, но в сутках 24 часа. Даже больше, некоторые дни имеют 23 или 25 часов из-за летнего времени, а в стандартном Григорианском календаре используются месяцы разной длины. А ещё существуют високосные годы и високосные секунды!

Для упрощения манипуляций и перебора временн́ых интервалов, D3 предоставляет горстку вспомогательных инструментов для работы со временем в дополнение к временн́ым шкалам и форматам. Инструменты поддерживают работу как с местным временем, так и с временем UTC. Местное время определяется средой выполнения JavaScript браузера; поддержка временных зон былобы прекрасна, но она требует доступа к файлам базы данных часовых поясов Олсона.

Интервал

# d3.time.interval

Возвращает указанный интервал interval. Поддерживаются следующие интервалы:

# interval(date)

Псевдоним для interval.floor(date). Например d3.time.day(new Date()) вернёт полночь (12:00 ночи) текущих суток по местному времени.

# interval.floor(date)

Округляет вниз указанную дату date, возвращая последний временн́ой интервал, до или равный указанной дате. Например d3.time.day.floor(new Date()) вернёт полночь (12:00 ночи) екущих суток по местному времени.

# interval.round(date)

Округляет вверх или вниз указанную дату date, возвращая ближайший временн́ой интервал к указанной дате. Например d3.time.day.round(new Date()) вернёт полночь (12:00 ночи) текущих суток, если время меньше или равно полудня и полночь следующих суток, если время больше полудня.

# interval.ceil(date)

Округляет вверх указанную дату date, возвращая самый ранний временн́ой интервал, после или равный указанной дате. Например d3.time.day.ceil(new Date()) вернёт полночь (12:00 AM) следующих суток по местному времени (только если вам не посчастливиться запустить этот код точно в полночь, в этом случае он вернёт текущее время).

# interval.range(start, stop[, step])

Возвращает временн́ые интервалы после или равные параметру start и до параметра stop. Если указан параметр step, будет возвращён только каждый step'ный интервал на основе количества интервалов (например, дни месяца для d3.time.day). Например, если step равен 2, будут возвращены 1-й, 3-й, 5-й и т.д. дни месяца для d3.time.day.

# interval.offset(date, step)

Возвращает новую дату, равную дате date плюс step интервалов. Если параметр step отрицательный, возвращёная дата будет до указанной даты; елси параметр step равен нулю, будет возвращена копия указанной даты. Этот метод не округляет указанную дату к интервалу. Например, если текущее время 5:34 дня, то d3.time.day.offset(new Date(), 1) вернёт 5:34 дня завтра (даже если произошёл переход с/на летнее время!).

# interval.utc

Возвращает соответствующий временной интервал в UTC, а не в местном времени. Например, d3.time.day.range(start, stop) вернёт местное время между start и stop, а d3.time.day.utc.range(start, stop) вернёт время UTC между start и stop.

Интервалы

# d3.time.second

Секунды (например, 01:23:45.0000 ночи). Всегда состоит из 1000 миллисекунд.

# d3.time.minute

Минуты (например, 01:02:00 ночи). Большинство браузеров не поддерживают високосные секунды, так что минуты практически всегда содержат 60 секунд (6e4 миллисекунд).

# d3.time.hour

Часы (например, 01:00 ночи). Содержат 60 минут (36e5 миллисекунд). Обратите внимание, что при продвижении на один час может вернуться тоже самое время, либо пропуститься один час, в связи с летним временем.

# d3.time.day

Дни (например, 7 февраля 2012 в 12:00 ночи). Большинство дней содержит 24 часа (864e5 миллисекунд); однако, в связис переходом с/на летнее время, день может содержать 23 или 25 часов.

# d3.time.week

Псевдоним для d3.time.sunday. неделя всегда содержит 7 дней, но диапазоны между 167 и 169 часами зависят от летнего времени.

# d3.time.sunday

Недели, начинающаяся с воскресенья (например, 5 февраля 2012 в 12:00 ночи).

# d3.time.monday

Недели, начинающаяся с понедельника (например, 6 февраля 2012 в 12:00 ночи).

# d3.time.tuesday

Недели, начинающаяся со вторника (например, 7 февраля 2012 в 12:00 ночи).

# d3.time.wednesday

Недели, начинающаяся со среды (например, 8 февраля 2012 в 12:00 ночи).

# d3.time.thursday

Недели, начинающаяся с четверга (например, 9 февраля 2012 в 12:00 ночи).

# d3.time.friday

Недели, начинающаяся с пятницы (например, 10 февраля 2012 в 12:00 ночи).

# d3.time.saturday

Недели, начинающаяся с субботы (например, 11 февраля 2012 в 12:00 ночи).

# d3.time.month

Месяцы (например, 1 февраля 2012 в 12:00 ночи). Содержит от 28 до 31 дня.

# d3.time.year

Годы (например, 1 января 2012 в 12:00 ночи). обычные годы содержат 365 дней; високосные годы содержат 366 дней.

Псевдонимы

# d3.time.seconds(start, stop[, step])

Псевдоним для d3.time.second.range. Возвращает границы секунд (например, 01:23:45 ночи) после или равные параметру start, но до параметра stop. Если указан параметр step, будет возвращена только каждая step'ная секунда на основе количества секунд в минуте. Например, если шаг step равен 15, то будут возвращены времена вида 9:01:45 вечера, 9:02:00 вечера, 9:02:15 вечера и т.д.

# d3.time.minutes(start, stop[, step])

Псевдоним для d3.time.minute.range. Возвращает границы минут (например, 01:23 AM) после или равные параметру start, но до параметра stop. Если указан параметр step, будет возвращена только каждая step'ная минута на основе количества минут в часе. Например, если шаг step равен 15, то будут возвращены времена вида 9:45 вечера, 10:00 вечера, 10:15 вечера и т.д.

# d3.time.hours(start, stop[, step])

Псевдоним для d3.time.hour.range. Возвращает границы часов (например, 01 ночи) после или равные параметру start, но до параметра stop. Если указан параметр step, будет возвращён только каждый step'ный час на основе количества часов в сутках. Например, если шаг step равен 3, то будут возвращены времена вида 9 вечера, 12 ночи, 3 ночи и т.д.

# d3.time.days(start, stop[, step])

Псевдоним для d3.time.day.range. Возвращает границы суток (полночь) после или равные параметру start, но до параметра stop. Если указан параметр step, будут возвращены только каждые step'ные сутки на основе количества дней в месяце. Например, если шаг step равен 2, то будут возвращены 1-й, 3-й, 5-й и т.д. дни месяца.

# d3.time.weeks(start, stop[, step])
# d3.time.sundays(start, stop[, step])
# d3.time.mondays(start, stop[, step])
# d3.time.tuesdays(start, stop[, step])
# d3.time.wednesdays(start, stop[, step])
# d3.time.thursdays(start, stop[, step])
# d3.time.fridays(start, stop[, step])
# d3.time.saturdays(start, stop[, step])

Псевдонимы для d3.time.interval.range и т.д. Возвращают границы недели (полночь воскресенья) после или равные параметру start, но до параметра stop. Если указан параметр step, будут возвращены только каждые step'ные недели на основе количества недель в году. Например, если шаг step равен 4, то будут возвращены даты вида 2 января, 30 января, 27 февраля и т.д.

# d3.time.months(start, stop[, step])

Псевдоним для d3.time.month.range. Возвращает границы месяцев (например, 1 января) после или равные параметру start, но до параметра stop. Если указан параметр step, будут возвращены только каждые step'ные месяцы на основе количества месяцев в году. Например, если шаг step равен 3, то будут возвращены январь, апрель, июль и т.д.

# d3.time.years(start, stop[, step])

Псевдоним для d3.time.year.range. Возвращает границы лет (полночь 1 января) после или равные параметру start, но до параметра stop. Если указан параметр step, будут возвращены только каждые step'ные годы. Например, если шаг step равен 5, то будут возвращены 2010, 2015, 2020 и т.д. годы.

Подсчёт

# d3.time.dayOfYear(date)

Возвращает номер дня в указанной дате date. Первый дель года (1 января) всегда является нулевым днём. В отличии от директивы «%j» функции d3.time.format, функция dayOfYear начинает отсчёт с нуля, а не с единицы.

# d3.time.weekOfYear(date)
# d3.time.sundayOfYear(date)
# d3.time.mondayOfYear(date)
# d3.time.tuesdayOfYear(date)
# d3.time.wednesdayOfYear(date)
# d3.time.thursdayOfYear(date)
# d3.time.fridayOfYear(date)
# d3.time.saturdayOfYear(date)

Возвращают номер недели для укзанной даты date, где неделя начинается с указанного дня. Первый день года (1 января) всегда имеет нулевую неделю. Функция weekOfYear является псевдонимом для функции sundayOfYear, которая эквивалентна директиве «%U» функции d3.time.format. Функция mondayOfYear эквивалентна директиве «%W» функции d3.time.format.

⚠️ **GitHub.com Fallback** ⚠️