Reactjs React MomentJS从开始时间和结束时间获取持续时间
我一直在试图找出计算活动持续时间的最佳方法 我有一个包含以下字段的集合:Reactjs React MomentJS从开始时间和结束时间获取持续时间,reactjs,datetime,momentjs,Reactjs,Datetime,Momentjs,我一直在试图找出计算活动持续时间的最佳方法 我有一个包含以下字段的集合: type Event { .. startsAt: "HH:mm MM-DD-YYYY" endsAt: "HH:mm MM-DD-YYYY" .. } 理想情况下,我希望节省开支 duration: String! 在我的GraphQL中,当创建事件时 有人能告诉我怎么做吗 我的堆栈: 反应 阿波罗 图形ql 我已安装以下设备: .. 动量 反应时刻 提前非常感谢有了startstartsAt和ende
type Event {
..
startsAt: "HH:mm MM-DD-YYYY"
endsAt: "HH:mm MM-DD-YYYY"
..
}
理想情况下,我希望节省开支
duration: String!
在我的GraphQL中,当创建事件时
有人能告诉我怎么做吗
我的堆栈:
反应
阿波罗
图形ql
我已安装以下设备:
..
动量
反应时刻
提前非常感谢有了startstartsAt和endendsAt日期,您可以轻松地在前端计算持续时间,在您的组件中的某个位置
诸如此类:
// Convert `startsAt` and `endsAt` strings to moment date objects
const start = moment(state.Event.startsAt)
const end = moment(state.Event.endsAt)
// Calculate the duration
// Keep in mind you can get the duration in seconds, days, etc.
const duration = moment.duration(end.diff(start))
const hours = duration.asHours()
@Jordan Enev-非常感谢您的快速响应!由于某种原因,在尝试此操作后,它抛出了一个错误。diff不是一个函数,我假设我必须另外导入一些内容。最后,我做出了一个彻底的决定,切换到Unix时间戳 通过Unix时间戳,我实现了我的目标: 添加插件npm install moment duration格式并导入它:
..
import momentDurationFormatSetup from "moment-duration-format";
..
momentDurationFormatSetup(moment);
const durationSeconds = (endsAt - startsAt) / 1000;
const duration = moment.duration(durationSeconds, "seconds").format("mm");
..
同样在上面,我将moment包装在一个HOC momentDurationFormatString中,该字符串由新导入的插件提供
-然后使用“反应力矩”渲染:
..
import Moment from "react-moment";
..
<Moment unix format="dddd, Mo MMM, H:mm">
{startsAt / 1000}
</Moment>
..
由于发生错误而引发错误。不过,我很高兴你自己解决了这个问题。