工作中会用到日期组件,有时候选择结束日期只需要用户选择年月,然后需要程序自动补全当月的最后一天,生成yyyy-MM-dd的字符串格式传到后端。
// 纯JS实现
let getEndDateFn = (value) => { // 形参value值的格式为yyyy-MM-dd或yyyy-MM
let date = new Date(value);
let month = date.getMonth() + 1;
month = month < 10 ? "0" + month : month;
let dayEnd = new Date(date.getFullYear(), month, 0).getDate();
let dateValue = date.getFullYear() + "-" + month + "-" + dayEnd;
return dateValue ;
}
// 使用
let endDate = getEndDateFn("2024-01");
console.log(endDate);
还有一种我比较喜欢的方式,引入moment.js插件
// 第一步是安装moment
npm i moment-timezone
// 在页面引用moment
import moment from "moment-timezone";
// 要把moment写在data的return里
data() {
return {
moment,
}
}
/* 在方法里使用 */
// 获取当月第一天:
moment(currDate).startOf("month").format("YYYY-MM-DD")
// 获取当月最后一天:
moment(currDate).endOf("month").format("YYYY-MM-DD")