javascript - 使用react计算javascript中两个日期之间的差异

标签 javascript reactjs semantic-ui

我试图通过两个日期选择器和两个时间选择器(一个 react 组件)来获取 react 中两个日期之间的差异。该日期用于预订,我想通过用“开始日期”减去“结束日期”来获取持续时间,但是当我减去两个超过 24 小时的日期时,我得到 -152 或与实际持续时间。

代码

periodReserve = (e, idPark, title ) => {
let Start_Day = this.state.startDate && this.state.startDate.format(Formatdate);
let Start_Hour = this.state.time && this.state.time.format(formatHour);
let End_Day = this.state.endDate && this.state.endDate.format(Formatdate);
let End_Hour = this.state.timeEnd && this.state.timeEnd.format(formatHour);
let diff = this.state.timeEnd - this.state.startDate;
console.log(diff);}

The error

第一个 DatePicker 和 TimePicker 的代码(用于开始)

<DatePicker
  id="calendar"
  className="TestIcon"
  dateFormat='YYYY-MM-DD'
  placeholderText="Date de fin"
  selected={this.state.startDate}
  onChange={this.handleChangeStart}/>

<TimePicker showSecond={false}
     placeholder={time}
     onChange={this.onChangeStart}> </TimePicker>

第二个dataPicker和TimePicker的代码

<DatePicker
    id="calendar"
    className="TestIcon"
    dateFormat='YYYY-MM-DD'
    selected={this.state.endDate}
    onChange={this.handleChangeEnd}/>

 <TimePicker showSecond={false}
  placeholder={timeEnd}
  onChange={this.onChangeEnd}> </TimePicker>

最佳答案

使用 momentJS 的示例代码

this.state = {startDate:1519026163000, timeEnd:1519126755000} // example

const startDate = moment(this.state.startDate);
const timeEnd = moment(this.state.timeEnd);
const diff = timeEnd.diff(startDate);
const diffDuration = moment.duration(diff);

console.log("Total Duration in millis:", diffDuration.asMilliseconds());
console.log("Days:", diffDuration.days());
console.log("Hours:", diffDuration.hours());
console.log("Minutes:", diffDuration.minutes());
console.log("Seconds:", diffDuration.seconds());
<script src="https://momentjs.com/downloads/moment.js"></script>

关于javascript - 使用react计算javascript中两个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48884051/

相关文章:

javascript - React Hooks 使用多个键更改对象的单个值而不重复

javascript - 在 map 功能中定位点击的卡片索引

css - 如何使侧边栏在语义 UI 中始终可见

javascript - Angularjs:如何捕获 <td> 标记中的文本并在我的 Controller 中使用它

javascript - HTML 表 JQuery 自动小时总计

javascript - Chrome 控制台和页内 javascript 有什么区别?

javascript - _.sumBy 跨数组相同键的总计

javascript - 何时使用 this.var 和 var = ;在 javascript 函数 obj 中?

javascript - React - 使用回调更改 child1 的 props 并将新值传递给 child2

html - 语义 UI 表格宽度