0Pricing
JavaScript Academy · Урок

Метки времени и вычисления с датами

Вычисляйте разницу и смещения между датами.

«Метки времени и вычисления с датами» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 4 уроков всего.

Метки времени

Внутри дата хранится как метка времени: количество миллисекунд с начала эпохи Unix — полуночи 1 января 1970 года по времени UTC.

const d = new Date("1970-01-01T00:00:00Z")
console.log(d.getTime())

Date.now

Date.now возвращает текущую метку времени в миллисекундах, не создавая объект Date, что эффективно при измерении времени.

const t = Date.now()
console.log(typeof t)
console.log(t > 0)

getTime

Метод getTime возвращает дату в виде метки времени в миллисекундах, что удобно для сравнений и вычислений.

const d = new Date(2024, 0, 1)
console.log(typeof d.getTime())

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

Сравнивайте две даты, сравнивая их метки времени. Более ранней дате соответствует меньшее число.

const a = new Date(2024, 0, 1)
const b = new Date(2024, 5, 1)
console.log(a.getTime() < b.getTime())

Разница в миллисекундах

Вычитание одной даты из другой преобразует обе даты в метки времени и возвращает разницу в миллисекундах.

const a = new Date(2024, 0, 1)
const b = new Date(2024, 0, 2)
console.log(b - a)

Преобразование в дни

Разделите разницу в миллисекундах на количество миллисекунд в сутках, чтобы получить разницу в днях.

const a = new Date(2024, 0, 1)
const b = new Date(2024, 0, 11)
const ms = b - a
const days = ms / (1000 * 60 * 60 * 24)
console.log(days)

Добавление времени

Чтобы добавить время, преобразуйте дату в метку времени, прибавьте количество миллисекунд и создайте новую дату из результата.

const start = new Date(2024, 0, 1)
const oneDay = 1000 * 60 * 60 * 24
const next = new Date(start.getTime() + oneDay)
console.log(next.getDate())

setDate для календарных вычислений

Метод setDate изменяет день месяца и при необходимости корректно переходит в следующий месяц.

const d = new Date(2024, 0, 31)
d.setDate(d.getDate() + 1)
console.log(d.getMonth())
console.log(d.getDate())

Измерение прошедшего времени

Сохраните значение Date.now до и после операции, а затем вычтите их, чтобы измерить продолжительность операции в миллисекундах.

const start = Date.now()
let sum = 0
for (let i = 0; i < 1000; i++) { sum += i }
const elapsed = Date.now() - start
console.log(elapsed >= 0)

Преобразование метки времени в дату

Передача числовой метки времени в конструктор Date восстанавливает исходный момент.

const ts = 1704067200000
const d = new Date(ts)
console.log(d.getUTCFullYear())

Секунды и миллисекунды

Метки времени JavaScript указаны в миллисекундах, но многие API используют секунды. Умножайте или делите значение на 1000 для преобразования между этими единицами.

const seconds = 1704067200
const d = new Date(seconds * 1000)
console.log(d.getUTCFullYear())

Быстрая проверка

Проверьте свои знания о метках времени.

Повторение

Повторение: даты внутри представлены метками времени в миллисекундах.

  • Date.now возвращает текущую метку времени
  • Вычитайте даты, чтобы получить разницу в миллисекундах
  • Делите на количество миллисекунд в сутках, чтобы получить число дней
  • JavaScript использует миллисекунды, а не секунды
const a = new Date(2024, 0, 1)
const b = new Date(2024, 0, 2)
console.log(b - a)

Часто задаваемые вопросы

Урок «Метки времени и вычисления с датами» бесплатный?

Да — полный текст урока «Метки времени и вычисления с датами» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс JavaScript Academy, подпишись на CoddyKit PRO. Курс JavaScript Academy содержит 4 уроков всего.

Чему я научусь в уроке «Метки времени и вычисления с датами»?

Вычисляйте разницу и смещения между датами. Ты практикуешь JavaScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать JavaScript Academy?

Предыдущий опыт не требуется. JavaScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Метки времени и вычисления с датами»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке JavaScript Academy?

Да. Каждый урок JavaScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание и чтение дат
  2. Метки времени и вычисления с датами
  3. Форматирование дат
  4. Часовые пояса и UTC
← Назад к JavaScript Academy