разница в формате в момент - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть код. Теперь результат {time} равен 1000 в миллисекундах. Мне нужно преобразовать эти миллисекунды в формат 00:00:01. Я знаю, что должен использовать момент (). Формат ('чч: мм: сс'), но проблема в том, что я не знаю, где я могу использовать его, чтобы заставить его работать правильно. Ты за помощь!

import React, { useState, useEffect } from "react";
import ReactDOM from "react-dom";
import moment from "moment";

import "./styles.css";

const App = () => {
  const [time, setTime] = useState('');

  useEffect(() => {
    reqEmulation();
  });

  const reqEmulation = async () => {
    const timeStart = moment();
    const promise = new Promise(res => {
      setTimeout(() => {
        const timeEnd = moment();
        res(timeEnd.diff(timeStart));
      }, 1000);
    });
    let result = await promise;
    setTime(result);
  };

  return (
    <div className="App">
      <p>{time}</p>
    </div>
  );
};

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

Я ожидаю вывод 00:00:01, но фактический вывод составляет 1000 миллисекунд.

1 Ответ

0 голосов
/ 10 ноября 2019

Вы можете отформатировать его перед сохранением в переменной времени:

...
let result = await promise;
setTime(moment(result).format('hh:mm:ss'));
...

Если вы хотите указать длительность в секундах, вы можете использовать следующий код:

...
let result = await promise;
setTime(moment.duration(result).asSeconds());
...
...