【问题标题】:React MomentJs not returning json time in minutesReact MomentJs 没有在几分钟内返回 json 时间
【发布时间】:2020-07-27 08:51:00
【问题描述】:

我有一个 JSON 文件,延迟时间以秒为单位在这样的对象中设置:

 "delay": 420,

当我在 React 中立即映射对象时,json 数组中的所有 8 个项目都会返回每个对象的时间(即 300、420、60 等...)。

const DelayTailLbl = (props) => {
  const [delayTailData, setDelayTailData] = useState(props.data);

  return (
    <div>
      <div>
        <span>{delayTailData.delay}</span>
      </div>
    </div>
  );
};
export default DelayTailLbl;

现在我正在尝试使用 set minutes from moment 将秒转换为分钟,如文档中所示:https://momentjs.com/docs/#/get-set/minute/

import moment from 'moment'

const DelayTailLbl = (props) => {
  const [delayTailData, setDelayTailData] = useState(props.data);

  return (
    <div>
      <div>
        <span>{moment(delayTailData.delay).format("mm")}</span>
      </div>
    </div>
  );
};
export default DelayTailLbl;

当我添加时刻时,所有 8 个对象的时间都返回 00 分钟。如果我将时间更改为format("HH:mm:ss"),它将返回 00:00:00。

使用 moment 以秒为单位返回 JSON 数据的正确方法是什么?我不明白没有它为什么它会返回正确的数据,但是有了它,它什么也没有返回,

【问题讨论】:

  • 您错过了链接中的这一部分:接受从 0 到 59 的数字。如果超出范围,它将冒泡到小时。
  • "delay": 420, 这里的 420 是什么?分钟、秒、毫秒?
  • 420 秒 @palaѕн
  • @AnuragSrivastava 我尝试了{moment(delayTailData.delay).minutes(59)} 和其他数字,但如果我添加它,我的网络应用程序不会加载。

标签: javascript reactjs momentjs


【解决方案1】:

你正在做的是使用delayTailData.delay创建一个日期时间对象

你真正想要的是使用 Moment Duration

Moment Durations

使用时刻持续时间你可以moment.duration(delayTailData.delay, 'seconds');,如果你想友好地显示那个时间你可以moment.duration(delayTailData.delay, 'seconds').humanize();

【讨论】:

  • 谢谢。人性化功能能够正确显示数据。第一个函数由于某种原因没有。
  • 这是因为 moment.duration(delayTailData.delay, 'seconds') 创建了一个对象,您必须调用其中一种“格式化程序”方法来显示时间,例如:moment.duration(delayTailData.delay, 'seconds').asMinutes()。您可以拨打asMilliseconds(); asSeconds(); asMinutes(); asDays(); asWeeks(), asMonths() and asYears()
  • 其实我只是回来告诉你我在文档中找到了.asMinutes()。再次感谢!
【解决方案2】:

你可以这样做:

const secs = 420;
const mins = moment.utc(secs*1000).format('mm');
const hhmmss = moment.utc(secs*1000).format('HH:mm:ss');

console.log('mm:\t', mins);
console.log('hhmmss:\t', hhmmss);
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"&gt;&lt;/script&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-16
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    相关资源
    最近更新 更多