Moment JS差异字符串

时间:2019-06-06 15:10:27

标签: javascript datetime momentjs

假设我们在Javascript中有两个日期,分别为2019-05-01和2019-05-23。用moment.js(或本地JS日期)生成差异字符串的最有效方法是什么?

1 - 23 May 2019

该解决方案还应该在不同的月份和年份中起作用,例如:

2019-05-01和2019-06-12

1. May - 12. June 2019

2018-05-01和2019-06-12

1. May 2018 - 12. June 2019

基本上,仅应显示日期部分,这些日期部分以人类可读的格式不同。是否有一些内在的东西,比如用几个if条件看起来不合适的新功能来创建新函数?它基本上应该适用于每个命令。我很确定我不是第一个遇到此问题的人,并且此刻有一个辅助功能,类似

moment('2019-05-01').calculateSpan('2019-06-12').format('D MMMM YYYY');

1 个答案:

答案 0 :(得分:0)

const Date1 = moment(new Date("2018-04-01"));
const Date2 = moment(new Date("2019-05-23"));

/**
 * @return {string}
 */
function ReadableDate(date1, date2) {
    let month = "";
    let year = "";
    if (date1.month() !== date2.month()) {
        month = date1.format("MMM")
    }
    if (date1.year() !== date2.year()) {
        year = date1.format("YYYY");
    }
    return date1.format("D") + (month && ". ") + month + (year && " ") + year + " - " + date2.format("DD MMM YYYY");
}



let str = ReadableDate(Date1, Date2);

详细了解moment formatting