假设我们在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');
答案 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);