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

如何创建返回Date对象的函数?控制台输出格式不符问题排查

问题解决:将dd/mm/yyyy格式转为指定格式的Date输出

你的代码输出ISO格式日期的原因有两个:

  1. 你在日期字符串末尾加了Z,这会让Date对象以UTC时间解析,导致输出偏向ISO标准格式。
  2. 直接console.log(Date对象)时,部分环境会默认输出ISO格式,而你需要的是toString()方法返回的格式。

修正方案

方法1:调整字符串构造并调用toString()

去掉末尾的Z,确保日期以本地时间解析,输出时显式调用toString():

function convertDate(date) {
    let dateArray = date.split("/");
    // 构造 yyyy/mm/dd 格式的本地日期字符串,去掉Z
    let dateString = `${dateArray[2]}/${dateArray[1]}/${dateArray[0]}`;
    let dateDate = new Date(dateString);
    return dateDate;
}

// 调用toString()得到预期格式
console.log(convertDate("05/12/2022").toString());

方法2:使用Date构造函数的参数(更稳妥,避免解析歧义)

直接传入年、月、日参数(注意月份是0索引,要减1),这样能避免不同浏览器对日期字符串解析的差异:

function convertDate(date) {
    let [day, month, year] = date.split("/");
    // 月份从0开始,所以要转成数字后减1
    let dateDate = new Date(year, month - 1, day);
    return dateDate;
}

console.log(convertDate("05/12/2022").toString());

两种方法执行后,都会输出类似:Mon Dec 05 2022 00:00:00 GMT+0800 (中国标准时间)的格式,符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:40:17