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

jQuery日期格式转换问题:16-Mar-2016转2016-03-16代码无效

解决16-Mar-2016转2016-03-16的日期格式问题

你的代码没法正常运行主要有两个关键问题:

  • 首先,Date.parse(16-Mar-2016)里的日期字符串没加引号,JavaScript会把16-Mar-2016当成变量名而非字符串,直接触发语法错误,得改成Date.parse("16-Mar-2016")才行。
  • 其次,原生JavaScript的Date对象根本没有内置的format()方法,这个方法一般是jQuery UI Datepicker或者第三方日期库(比如moment.js)提供的,直接调用肯定会报错。

下面给你几种可行的解决方案:

方案一:原生JavaScript手动格式化(无需额外库)

如果不想引入任何第三方依赖,自己写个简单函数就能搞定:

function formatTargetDate(dateStr) {
  // 先正确创建Date实例
  const date = new Date(dateStr);
  // 提取年份
  const year = date.getFullYear();
  // 提取月份(注意getMonth返回0-11,要加1后补零到两位)
  const month = String(date.getMonth() + 1).padStart(2, '0');
  // 提取日期并补零到两位
  const day = String(date.getDate()).padStart(2, '0');
  // 拼接成目标格式
  return `${year}-${month}-${day}`;
}

// 使用示例
const requestStartDate = formatTargetDate("16-Mar-2016");
console.log(requestStartDate); // 输出:2016-03-16

方案二:使用moment.js(简洁高效)

如果你的项目里已经用了moment.js(或者可以引入它),代码会非常简洁直观:

// 确保已引入moment.js
const requestStartDate = moment("16-Mar-2016", "DD-MMM-YYYY").format("YYYY-MM-DD");
console.log(requestStartDate); // 输出:2016-03-16

方案三:使用jQuery UI Datepicker

如果你的项目已经引入了jQuery和jQuery UI,也可以用它自带的格式化方法:

// 确保已引入jQuery和jQuery UI
const date = new Date("16-Mar-2016");
const requestStartDate = $.datepicker.formatDate("yy-mm-dd", date);
console.log(requestStartDate); // 输出:2016-03-16

这里的yy对应四位年份,mm对应两位月份,dd对应两位日期,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者S Mugunthan kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:42:26