element-ui 时间选择器

需求: 时分秒的选择,限制选择:自当前时间6个月的内的时间
<el-date-picker
v-model="duration"
type="datetimerange"
range-separator="~"
:start-placeholder="this.$t('templateManager.startDate')"
:end-placeholder="this.$t('templateManager.endDate')"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
size="mini"
style="width:90%"
:clearable="false"
:picker-options="pickerOptions"
/>
pickerOptions: {
disabledDate(time) {
let currentDate = new Date();
let year = currentDate.getFullYear();
let month = currentDate.getMonth();
let date = currentDate.getDate();
// 强制将当前时间的:时、分、秒设置时间为 23:59:59。 不然选择 时分秒的时候,如果超过当前的时分秒,确认按钮会禁用,无法选择
let newDate = new Date(year, month, date, 23, 59, 59);
let currentTimeStr = newDate.getTime();
const sixMonthsAgo = new Date();
//设置6个月的时间范围
sixMonthsAgo.setMonth(sixMonthsAgo.getMonth() - 6);
//time>currentTimeStr:把当前之后的全部禁用
//time<sixMonthsAgo.getTime()禁用6个月前的
return time.getTime() > currentTimeStr || time < sixMonthsAgo.getTime();
},
},
/**
* @method 计算两个日期时间范围是否在N个月以内 eg:['2024-04-01 00:00:00', '2024-05-31 00:00:00']是否在6个月内
* @param {String} startDate 开始时间
* @param {String} endDate 结束时间
* @param {Number} value 指定的相差月份
* @return {Boolean} true 是, false 否
*/
export function isWithinSpecifiedMonths(startDate, endDate, value) {
let start = new Date(startDate);
let end = new Date(endDate);
// 确认开始时间早于结束时间
if (start > end) {
[start, end] = [end, start];
}
// 计算月份差异
const monthsDiff = (end.getFullYear() - start.getFullYear()) * 12 + (end.getMonth() - start.getMonth());
// 检查月份差异是否小于或等于 差异月份
return monthsDiff <= value
}
/**
* @method 计算两个日期时间范围是否在N小时内以内
* @param {String} startTimeStr 开始时间
* @param {String} endTimeStr 结束时间
* @param {Number} value 指定的相差月份
* @return {Boolean} true 是, false 否
*/
export function isWithinSpecifiedHours(startTimeStr, endTimeStr,value) {
const startTime = new Date(startTimeStr);
const endTime = new Date(endTimeStr);
const timeDiff = endTime - startTime;
const timeDiffHours = timeDiff / (1000 * 60 * 60);
return timeDiffHours <= value
}

__EOF__

本文作者云霄紫潭
本文链接https://www.cnblogs.com/0520euv/p/18143985.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   云霄紫潭  阅读(231)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示