millisecondsToSeconds, millisecondsToMinutes

Функция millisecondsToSeconds из библиотеки date-fns преобразует количество миллисекунд в секунды.

Сигнатура

millisecondsToSeconds(milliseconds)

Параметры

Параметр Тип Описание
milliseconds number Количество миллисекунд

Возвращаемое значение

Функция возвращает число (number) — количество секунд.


Подключение функции

CommonJS

const { millisecondsToSeconds } = require('date-fns')

ES Modules

import { millisecondsToSeconds } from 'date-fns'

Точечный импорт

import millisecondsToSeconds from 'date-fns/millisecondsToSeconds'

Принцип работы

В одной секунде содержится 1000 миллисекунд. Функция выполняет деление переданного значения на 1000, после чего отбрасывает дробную часть.

millisecondsToSeconds(1000)
// => 1
millisecondsToSeconds(5500)
// => 5

Округление результата

Особенность функции заключается в использовании округления вниз через отбрасывание дробной части.

Примеры

millisecondsToSeconds(1999)
// => 1
millisecondsToSeconds(2500)
// => 2
millisecondsToSeconds(999)
// => 0

Функция не использует математическое округление:

Math.round(2500 / 1000)
// => 3

В отличие от:

millisecondsToSeconds(2500)
// => 2

Это важно при работе с таймерами, системами отсчёта времени и логикой, где нельзя допускать преждевременное увеличение значения.


Работа с отрицательными числами

Функция корректно обрабатывает отрицательные значения.

millisecondsToSeconds(-1000)
// => -1
millisecondsToSeconds(-2500)
// => -2

Использование в таймерах

Отображение оставшегося времени

import { millisecondsToSeconds } from 'date-fns'

const remaining = 15320

console.log(
  `${millisecondsToSeconds(remaining)} сек`
)

// => 15 сек

Использование с setTimeout

const start = Date.now()

setTimeout(() => {
  const end = Date.now()

  const diff = end - start

  console.log(millisecondsToSeconds(diff))
}, 3200)

Вычисление длительности операций

import { millisecondsToSeconds } from 'date-fns'

const start = performance.now()

heavyOperation()

const end = performance.now()

const executionTime = end - start

console.log(
  `Выполнение заняло ${millisecondsToSeconds(executionTime)} сек`
)

Использование в логировании

function logRequestTime(startTime) {
  const diff = Date.now() - startTime

  console.log({
    executionSeconds: millisecondsToSeconds(diff)
  })
}

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

import { millisecondsToSeconds } from 'date-fns'

const videoDuration = 72500

const seconds = millisecondsToSeconds(videoDuration)

console.log(seconds)
// => 72

Сравнение с ручным вычислением

Обычное деление

const seconds = milliseconds / 1000

Результат:

5500 / 1000
// => 5.5

Использование millisecondsToSeconds

millisecondsToSeconds(5500)
// => 5

Отличие от Math.floor

На первый взгляд функция похожа на:

Math.floor(milliseconds / 1000)

Но поведение для отрицательных чисел отличается.

Math.floor

Math.floor(-2500 / 1000)
// => -3

millisecondsToSeconds

millisecondsToSeconds(-2500)
// => -2

Причина заключается в использовании усечения числа, а не округления вниз.


Практический пример: секундомер

import { millisecondsToSeconds } from 'date-fns'

const start = Date.now()

setInterval(() => {
  const current = Date.now()

  const diff = current - start

  console.log(
    millisecondsToSeconds(diff)
  )
}, 1000)

Практический пример: ограничение ожидания

import { millisecondsToSeconds } from 'date-fns'

function checkTimeout(startTime) {
  const diff = Date.now() - startTime

  if (millisecondsToSeconds(diff) > 10) {
    console.log('Превышено время ожидания')
  }
}

Работа с пользовательским интерфейсом

import { millisecondsToSeconds } from 'date-fns'

function updateLoader(duration) {
  const seconds = millisecondsToSeconds(duration)

  loader.textContent = `Загрузка: ${seconds} сек`
}

millisecondsToMinutes

Функция millisecondsToMinutes преобразует миллисекунды в минуты.

Сигнатура

millisecondsToMinutes(milliseconds)

Параметры

Параметр Тип Описание
milliseconds number Количество миллисекунд

Возвращаемое значение

Возвращается число (number) — количество минут.


Подключение функции

CommonJS

const { millisecondsToMinutes } = require('date-fns')

ES Modules

import { millisecondsToMinutes } from 'date-fns'

Точечный импорт

import millisecondsToMinutes from 'date-fns/millisecondsToMinutes'

Принцип работы

В одной минуте содержится 60000 миллисекунд.

Функция делит значение на 60000 и удаляет дробную часть.

millisecondsToMinutes(60000)
// => 1
millisecondsToMinutes(180000)
// => 3

Примеры округления

millisecondsToMinutes(119999)
// => 1
millisecondsToMinutes(120000)
// => 2
millisecondsToMinutes(59999)
// => 0

Работа с отрицательными значениями

millisecondsToMinutes(-60000)
// => -1
millisecondsToMinutes(-125000)
// => -2

Отображение длительности

import { millisecondsToMinutes } from 'date-fns'

const audioDuration = 420000

console.log(
  `${millisecondsToMinutes(audioDuration)} мин`
)

// => 7 мин

Использование в аналитике

import { millisecondsToMinutes } from 'date-fns'

function getSessionDuration(startTime) {
  const diff = Date.now() - startTime

  return millisecondsToMinutes(diff)
}

Ограничение времени сессии

import { millisecondsToMinutes } from 'date-fns'

function isExpired(createdAt) {
  const diff = Date.now() - createdAt

  return millisecondsToMinutes(diff) >= 30
}

Отображение времени ожидания

import { millisecondsToMinutes } from 'date-fns'

const queueTime = 540000

console.log(
  `Ожидание: ${millisecondsToMinutes(queueTime)} мин`
)

Использование в отчётах

import { millisecondsToMinutes } from 'date-fns'

const workTime = 14400000

console.log({
  workMinutes: millisecondsToMinutes(workTime)
})

Сравнение с ручным вычислением

Обычное деление

180000 / 60000
// => 3
125000 / 60000
// => 2.0833333333333335

Использование функции

millisecondsToMinutes(125000)
// => 2

Отличие от Math.floor

Math.floor

Math.floor(-125000 / 60000)
// => -3

millisecondsToMinutes

millisecondsToMinutes(-125000)
// => -2

Совместное использование функций

import {
  millisecondsToSeconds,
  millisecondsToMinutes
} from 'date-fns'

const duration = 185000

console.log(
  millisecondsToSeconds(duration)
)
// => 185

console.log(
  millisecondsToMinutes(duration)
)
// => 3

Использование в системе мониторинга

import {
  millisecondsToSeconds,
  millisecondsToMinutes
} from 'date-fns'

function getStats(duration) {
  return {
    seconds: millisecondsToSeconds(duration),
    minutes: millisecondsToMinutes(duration)
  }
}

console.log(
  getStats(305000)
)

Результат:

{
  seconds: 305,
  minutes: 5
}

Обработка данных API

import { millisecondsToMinutes } from 'date-fns'

async function loadStatistics() {
  const response = await fetch('/api/stats')

  const data = await response.json()

  return data.map(item => ({
    ...item,
    durationMinutes: millisecondsToMinutes(item.duration)
  }))
}

Использование в React

import { millisecondsToSeconds } from 'date-fns'

function Timer({ duration }) {
  return (
    <div>
      {millisecondsToSeconds(duration)} сек
    </div>
  )
}

Использование в Node.js

import { millisecondsToMinutes } from 'date-fns'

const uptime = process.uptime() * 1000

console.log(
  `Uptime: ${millisecondsToMinutes(uptime)} мин`
)

Когда использовать millisecondsToSeconds

Функция подходит для:

  • таймеров;
  • секундомеров;
  • логирования;
  • отображения задержек;
  • измерения производительности;
  • расчёта времени выполнения операций.

Когда использовать millisecondsToMinutes

Функция применяется для:

  • отображения длительных интервалов;
  • времени ожидания;
  • аналитики;
  • расчёта продолжительности сессий;
  • систем мониторинга;
  • статистики времени работы.