You need to enable JavaScript to run this app. JavaScript将Contract_End_Date格式化为YYYY-MM-DD格式的解决方案
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript将Contract_End_Date格式化为YYYY-MM-DD格式的解决方案

问题排查

你的代码未得到预期结果的核心原因是:多了不必要的按空格拆分判断逻辑。你给出的输入示例2020-1-1、2020-1-11本身不包含空格,调用split(" ")后得到的数组长度为1,不会进入arr.length == 2的分支,后续的日期补零格式化逻辑完全没有执行。

修正后的代码

删除多余的空格拆分判断逻辑即可正常运行:

var updates = {};
var removes = {};
let Contract_End_Date = '2020-1-11';

if (typeof Contract_End_Date !== 'undefined' && Contract_End_Date != null) {
  var dateParts = Contract_End_Date.split("-");
  if (dateParts.length == 3) {
    var day = parseInt(dateParts[2]);
    day = day < 10 ? "0" + day : day;
    var month = parseInt(dateParts[1]);
    month = month < 10 ? "0" + month : month;
    var year = dateParts[0];
    updates["Contract_End_Date"] = `${year}-${month}-${day}`;
  }
}
console.log(updates); // 输出 { Contract_End_Date: '2020-01-11' }
更简洁的实现方案

可以直接用字符串padStart方法简化补零逻辑,代码可读性更高:

const formatContractDate = (dateStr) => {
  const [year, month, day] = dateStr.split('-').map(Number);
  return `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`;
}

// 测试效果
console.log(formatContractDate('2020-1-1')); // 输出 2020-01-01
console.log(formatContractDate('2020-1-11')); // 输出 2020-01-11

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 07:39:03