You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript的if条件函数中正确读取SQL查询到的shift日期字段数据

问题原因

  1. 单引号包裹的字符串不支持${}模板插值语法,只会将占位符原样作为普通字符串输出
  2. 你调用getshiftstatus函数时,已经把shift对象的两个时间字段作为参数传入了,函数内部作用域不存在shift变量,直接使用入参start_datetime、end_datetime即可

解决代码

你只需要修改函数的else分支逻辑,补充日期格式化、用反引号写模板字符串即可,完整函数如下:

function getshiftstatus(start_datetime, end_datetime) {
    var s_status = '';
    if (start_datetime === null) {
        s_status = '<p class="text-danger">Inactive</p>';
    } else if (end_datetime === null) {
        s_status = '<p class="text-success">Active</p>';
    }  else {
        // 格式化日期,去掉时间部分,只保留年月日
        const formatDate = (datetimeStr) => datetimeStr.split('T')[0];
        const startDate = formatDate(start_datetime);
        const endDate = formatDate(end_datetime);
        // 用反引号写模板字符串,直接使用函数入参变量
        s_status = `<table><tr class="row-gray"><td class="p-0 font-weight-bold">From:</td><td class="tb-schedule">${startDate}</td></tr><tr class="row-gray"><td class="p-0 font-weight-bold">To:</td><td class="tb-schedule">${endDate}</td></tr></table>`;
    }
    return s_status;  
}

如果你的时间格式不是带T的ISO标准格式,只需要调整formatDate里的拆分逻辑适配你的时间字符串格式即可。


内容的提问来源于stack exchange,提问作者user16409170

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 00:09:01