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

如何使用Moment.js正确实现表格截止日期的颜色判断逻辑

解决表格截止日期颜色标记问题

你的问题出在用fromNow()返回的字符串做比较——fromNow()输出的是类似"in 5 days"这种文本,字符串的大小对比逻辑和实际日期差值完全不匹配,自然得不到正确结果。

直接用Moment.js的日期差值计算来实现规则:

正确代码

// 先把截止日期转成Moment实例
const deadline = moment(currentRow["Deadline"]);
// 计算当前时间到截止日期的剩余天数(正数表示还没到,负数表示已过期)
const daysRemaining = deadline.diff(moment(), 'days');

// 根据天数判断颜色
const textColor = daysRemaining < 0 
  ? '#999999' // 已过期,灰色
  : daysRemaining <= 5 
    ? '#f50202' // 剩余5天及以内,红色
    : '#0d0d0d'; // 其他情况,黑色

逻辑说明

  • 用diff()方法直接计算两个日期的天数差,得到的是数值,对比逻辑准确
  • 先判断是否已过期(天数差为负),再判断是否在截止前5天内,最后是正常情况,逻辑清晰不易出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:20:42