Функция millisecondsToSeconds из библиотеки date-fns
преобразует количество миллисекунд в секунды.
millisecondsToSeconds(milliseconds)
| Параметр | Тип | Описание |
|---|---|---|
milliseconds |
number |
Количество миллисекунд |
Функция возвращает число (number) — количество
секунд.
const { millisecondsToSeconds } = require('date-fns')
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 сек
setTimeoutconst 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
millisecondsToSecondsmillisecondsToSeconds(5500)
// => 5
Math.floorНа первый взгляд функция похожа на:
Math.floor(milliseconds / 1000)
Но поведение для отрицательных чисел отличается.
Math.floorMath.floor(-2500 / 1000)
// => -3
millisecondsToSecondsmillisecondsToSeconds(-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) — количество минут.
const { millisecondsToMinutes } = require('date-fns')
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.floorMath.floorMath.floor(-125000 / 60000)
// => -3
millisecondsToMinutesmillisecondsToMinutes(-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
}
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)
}))
}
import { millisecondsToSeconds } from 'date-fns'
function Timer({ duration }) {
return (
<div>
{millisecondsToSeconds(duration)} сек
</div>
)
}
import { millisecondsToMinutes } from 'date-fns'
const uptime = process.uptime() * 1000
console.log(
`Uptime: ${millisecondsToMinutes(uptime)} мин`
)
millisecondsToSecondsФункция подходит для:
millisecondsToMinutesФункция применяется для: