Как правильно конвертировать секунды в минуты/часы с помощью luxon ReactJs

Я хотел бы объяснить мою проблему дня.

в настоящее время у меня есть функция, которая работает правильно

function numberToHms(numbers) {
  let hms;
  let number = numbers;
  number = Number(number);

  const h = Math.floor(number / 3600);
  const m = Math.floor((number % 3600) / 60);
  const s = Math.floor((number % 3600) % 60);

    const hour =
         h > 0
             ? `${h}h`
             : "";

     const minute =
         m > 0
             ? `${m}min`
             : "";

    const second =
         s > 0
             ? `${s}${
                   m === 0 && h === 0
                       ? `seconde`
                       : `sec`
             : "";

     if (h > 0) {
         hms = hour + minute;
     }

     if (m > 0 && h === 0) {
         hms = minute + second;
     }

    if (s > 0 && m === 0 && h === 0) {
         hms = second;
     }

     return hms;
 }

оказывать

<p>{numberToHms(24)}</p>

поэтому моя проблема и следующая, я хотел бы заменить эту функцию, чтобы использовать luxon напрямую

если есть идеи, спасибо

Нефф

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
71
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

вы можете использовать что-то вроде этого

import React from 'react';
import { DateTime } from 'luxon';

function secondsToHMS(seconds) {
  const duration = DateTime.fromMillis(seconds * 1000);
  return duration.toFormat('hh:mm:ss');
}

function App() {
  return (
    <div>
      <p>{secondsToHMS(3661)}</p>
    </div>
  );
}```
And if you want to custom the format you could do something like
```javascript
return duration.toFormat('hh hours, mm minutes and ss seconds');
Ответ принят как подходящий
function numberToHms(number) {

const duration = Duration.fromObject({ seconds: number});

const minutesSeconds = duration.toFormat('mm:ss'); //to convert it to Hours minutes and seconds use this duration.toFormat('hh:mm:ss');
console.info(minutesSeconds);

return minutesSeconds
}

спасибо, братан, это хорошее начало, у тебя есть идея, хочу ли я формат 1ч 1мин 1сек? спасибо

Neff 13.12.2022 10:42

Упомянутый комментарий, я думаю, должен работать. Вот так: duration.toFormat('чч:мм:сс')

Juljo Shahini 13.12.2022 10:45

извини братан я плохо выразился, я начинаю снова, с твоего примера, если у меня 130 в секунду, я получаю ответ в следующем формате "00:02:10". и я бы предпочел получить его в следующем формате «2 минуты 10 секунд». спасибо чувак

Neff 13.12.2022 10:53

Не могли бы вы попробовать это: duration.toFormat("m'min' s'sec'"); и ответьте мне, если это работает для вас?

Juljo Shahini 13.12.2022 11:03

это работает очень хорошо, спасибо за месиво, могу я продолжить беспокоить вас еще одним вопросом?

Neff 13.12.2022 11:08

Продолжайте, я отвечу вам как можно скорее.

Juljo Shahini 13.12.2022 11:48

Давайте продолжим обсуждение в чате.

Juljo Shahini 13.12.2022 11:54

Другие вопросы по теме