簡體   English   中英

使用 Moment.js 將 2 個日期之間的差異轉換為 'y mod d' 格式

[英]Convert the difference between 2 dates to 'y mo d' format using Moment.js

我遇到了一個難題,試圖弄清楚如何將兩個日期之間的差異轉換為自開始日期以來已經過了多少年、幾個月和幾天的准確細分。 我要顯示的格式是:'1y 5mo 2d' 給定兩個具有這種差異的日期時間。 我嘗試使用 Moment.js,它對於 'y' 和 'mo' 效果很好,但我遇到了困難,試圖弄清楚如何准確地獲得天數。

export const convertDaysToYMD = (dates: {start, end})=>{
  const start = Moment(dates.start)
  const end = Moment(dates.end)
  const y = end.diff(start, 'years')
  const m = end.diff(start, 'months')
  const d = end.diff(start, 'days')
  console.log('y', y + ' m', m%12 + ' d', d)
}

我可以通過使用 mod(12) 准確地獲得年數和月數,但由於每月變化的天數,我不太清楚如何獲得天數。 任何幫助都會很棒。

您可以像這樣使用時刻的duration方法:

 const start = moment('2020-01-02'); const end = moment('2020-02-03'); const duration = moment.duration(end.diff(start)); console.log(`${duration.years()} years ${duration.months()} months and ${duration.days()} days.`)
 <script src="https://momentjs.com/downloads/moment.min.js"></script>

暫無
暫無

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

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