简体   繁体   English

使用moment.js将天数转换为月份和剩余天数

[英]convert days into month and remaining days using moment.js

For example I've 250 Days and I want to convert it into months and days using moment.js so do you have any idea how can I do that? 例如,我已经250天了,我想用moment.js把它转换成几个月和几天,所以你有什么想法我怎么能这样做?

Example:

What I've: 250 Days

What I want: 8 Months and 7 Days

You can check the difference between year month and days separately and display them together 您可以分别检查年月和日之间的差异并一起显示

 var start = moment(); var end = moment().add(250, 'days'); var years = end.diff(start, 'year'); start.add(years, 'years'); var months = end.diff(start, 'months'); start.add(months, 'months'); var days = end.diff(start, 'days'); console.log(years + ' years ' + months + ' months ' + days + ' days'); 
 <script src="https://cdn.jsdelivr.net/momentjs/2.10.6/moment-with-locales.min.js"></script> 

You can use diff and duration from moment to achieve this. 你可以从瞬间使用差异和持续时间来实现这一目标。

const currentDate = moment(new Date(), 'YYYY-MM-DD');
const futureDate = moment(currentDate).add(250, 'days');
const diff = moment.duration(futureDate.diff(currentDate));

console.log(`${diff.months()} Months and ${diff.days()} Days`);
// 8 Months and 6 Days

 const futureDate = moment().add(250, 'days'); const duration = moment.duration(futureDate.diff(moment())); console.log(`${duration.months()} Months and ${duration.days()} Days`); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script> 

Note: it's a simplified example without edge-cases 注意:这是一个没有边缘情况的简化示例

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM