簡體   English   中英

使用react計算javascript中兩個日期之間的差異

[英]Calculate the difference between two dates in javascript using 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);}

錯誤

第一個 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> 

  const dateConverter = (startDate, timeEnd) => {
    const newStartDate= new Date(startDate);
    const newEndDate=new Date(timeEnd);
    const one_day = 1000*60*60*24;
    let result
    result = Math.ceil((newEndDate.getTime()-newStartDate.getTime())/(one_day))
    console.log('date Converter result', result)
    if (result < 0 ) {return 0}
    return result
  }

結果(天)

它是小圖書館

點擊參考

npm i moment

  const dateConverter = (startDate, timeEnd) => {
     const newStartDate= new Date(startDate);
     const newEndDate=new Date(timeEnd);
     let result=moment(newStartDate).diff(newEndDate,'days')
     return result   }

對代碼片段的快速評論

如果你想要像 250 天這樣的絕對值。 你應該使用這個:

diffDuration.asDays()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM