如何在JavaScript的if条件函数中正确读取SQL查询到的shift日期字段数据
问题原因
- 单引号包裹的字符串不支持
${}模板插值语法,只会将占位符原样作为普通字符串输出 - 你调用
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
相关产品推荐
相关产品推荐

