请教一下,我给日期控件加了编辑后事件,让选择的日期等于昨天时,按钮变色,为啥不生效呢

const now = new Date();

const thirtyDaysAgo = new Date();

const thirtyDaysAgo1 = new Date();

thirtyDaysAgo.setDate(now.getDate() - 30);

thirtyDaysAgo1.setDate(now.getDate() - 1);

// 用户选择的日期(示例)

const userDate =this.getValue(); // 假设这是用户选择的日期字符串

const selectedDate = new Date(userDate);

// 比较日期

if (selectedDate == thirtyDaysAgo1) {

$('div[widgetname="昨日"]').css("background","rgb(99, 178, 238)");//TX是控件名,需要大写

$('div[widgetname="近7日"]').css("background", "rgb(182, 217, 255)");//TX是控件名,需要大写

$('div[widgetname="近30日"]').css("background", "rgb(182, 217, 255)");//TX是控件名,需要大写

}

FineReport HmjijsbZ 发布于 2025-3-21 16:37
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2025-3-21 16:57

因为时间有秒数导致,价格格式化

function formatDate(date) {

var year = date.getFullYear();

var month = addZero(date.getMonth() + 1);

var day = addZero(date.getDate());

return year + '-' + month + '-' + day;

}

function addZero(num) {

return num < 10 ? '0' + num : num;

}

const now = new Date();

const thirtyDaysAgo = new Date();

const thirtyDaysAgo1 = new Date();

thirtyDaysAgo.setDate(now.getDate() - 30);

thirtyDaysAgo1.setDate(now.getDate() - 1);

// 用户选择的日期(示例)

const userDate =this.getValue(); // 假设这是用户选择的日期字符串

const selectedDate = new Date(userDate);

// 比较日期

if (formatDate(selectedDate) == formatDate(thirtyDaysAgo1)) {

$('div[widgetname="昨日"]').css("background","rgb(99, 178, 238)");//TX是控件名,需要大写

$('div[widgetname="近7日"]').css("background", "rgb(182, 217, 255)");//TX是控件名,需要大写

$('div[widgetname="近30日"]').css("background", "rgb(182, 217, 255)");//TX是控件名,需要大写

}

最佳回答
0
华莉星宸Lv7资深互助
发布于2025-3-21 16:38

加个延时

setTimeout(function() {

你的JS代码;

}, 500);

  • HmjijsbZ HmjijsbZ(提问者) 还是不行,大佬,你有什么别的思路吗?
    2025-03-21 16:41 
  • 华莉星宸 华莉星宸 回复 HmjijsbZ(提问者) 你把这两个日期打印一下看看 是不是是相等的啊selectedDate thirtyDaysAgo1
    2025-03-21 16:44 
  • 3关注人数
  • 28浏览人数
  • 最后回答于:2025-3-21 16:57
    请选择关闭问题的原因
    确定 取消
    返回顶部