做flash网站框架引擎,陕西建设招聘信息网站,中山专业做网站公司,php网站开发遇到的问题对当前日期进行按年、按月、按日的取值。
其规则为#xff1a;
按年 为当前日期到来年同一日期的前一天#xff08;2024-12-01到2025-11-30#xff09;。
按月 为当前日期到下个月的同一日期的前一天 #xff08;2024-12-01 到 2024-12-31#xff09;。
按日 为当前日… 对当前日期进行按年、按月、按日的取值。
其规则为
按年 为当前日期到来年同一日期的前一天2024-12-01到2025-11-30。
按月 为当前日期到下个月的同一日期的前一天 2024-12-01 到 2024-12-31。
按日 为当前日期到下一日2024-12-01 到 2024-12-02 实验多种方式 要么引入组件 要么拆分重组 很麻烦最后试了个方法觉得挺简便的 记录下来。
组件用的是vue3的 DatePicker 日期选择器 div styledisplay: flex; width: 100%; justify-content: space-betweenel-date-pickerv-modelform.StartTime formatYYYY-MM-DDvalue-formatYYYY-MM-DDtypedateplaceholder开始日期changechangeEnterprise/div—/divel-date-pickerv-modelform.EndTimeformatYYYY-MM-DDvalue-formatYYYY-MM-DDtypedateplaceholder结束日期disabled//div
组件改写选择开始时间结束时间自动计算。 el-select v-modelform.report placeholder请选择时间类型 changechangeTypeel-option v-fordict in bus_report_type :keydict.value :labeldict.label :valuedict.value /
// 此段代码是字典表取值 转译成假数据el-option key0 label按年 value0el-option key1 label按月 value1el-option key2 label按日 value2/el-select 选完时间类型后显示结束时间。
//根据类型查周期
const changeEnterprise () {if (form.value.Type) {const dataTime new Date(form.value.StartTime);if (form.value.Type 0) {// 增加一年dataTime.setFullYear(dataTime.getFullYear() 1);// 减去一天dataTime.setDate(dataTime.getDate() - 1);}if (form.value.Type 1) {// 增加一个月dataTime.setMonth(dataTime.getMonth() 1);// 减去一天dataTime.setDate(dataTime.getDate() - 1);}if (form.value.Type 2) {// 增加一天dataTime.setDate(dataTime.getDate() 1);}// 格式化日期为 YYYY-MM-DD 字符串const year dataTime.getFullYear();const month String(dataTime.getMonth() 1).padStart(2, 0); // 月份从0开始所以需要1并且补零const day String(dataTime.getDate()).padStart(2, 0); // 日期可能也需要补零form.value.EndTime ${year}-${month}-${day};console.log(startDate, dataTime, form.value.EndTime);} else {form.value.Type null;}
};附加一个设置 dateTime 的默认值为当前月的第一天到最后一天
// 获取当前日期
const currentDate new Date();// 获取当前月的第一天
const firstDay new Date(currentDate.getFullYear(), currentDate.getMonth());// 获取当前月的最后一天
const lastDay new Date(currentDate.getFullYear(), currentDate.getMonth() 1, 0);// 将日期格式化为 YYYY-MM-DD
const formatDate (date) {const year date.getFullYear();const month String(date.getMonth() 1).padStart(2, 0);const day String(date.getDate()).padStart(2, 0);return ${year}-${month}-${day};
};// 设置 dateTime 的默认值为当前月的第一天到最后一天
const dateTime ref([formatDate(firstDay), formatDate(lastDay)]);