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

JavaScript日期格式转换求助:转为指定格式及截断toISOString后缀

日期格式转换解决方案

嘿,我来帮你搞定这几个日期格式的问题,直接上实用的代码和解释:

1. 将new Date()转换为2-13-2018格式(月-日-年,无前置零)

你可以自己封装一个简单的函数,手动提取月份、日期和年份,然后按格式拼接:

function formatDate1(date) {
  const month = date.getMonth() + 1; // 月份从0开始,所以加1
  const day = date.getDate();
  const year = date.getFullYear();
  return `${month}-${day}-${year}`;
}

// 使用示例
const currentDate = new Date();
console.log(formatDate1(currentDate)); // 输出类似 "2-13-2024"

2. 将Sat Apr 28 2018 00:00:00 GMT-0600 (MDT)转换为4/28/2018格式(月/日/年,无前置零)

同样的思路,提取对应部分后用/分隔:

function formatDate2(date) {
  const month = date.getMonth() + 1;
  const day = date.getDate();
  const year = date.getFullYear();
  return `${month}/${day}/${year}`;
}

// 使用示例
const dateStr = "Sat Apr 28 2018 00:00:00 GMT-0600 (MDT)";
const targetDate = new Date(dateStr);
console.log(formatDate2(targetDate)); // 输出 "4/28/2018"

3. 去除toISOString()结果的末尾部分

toISOString()返回的是标准UTC格式的字符串,如果你只想保留日期部分(比如2018-04-28),可以用字符串的slice()方法截取前10位;如果需要保留到时分秒(比如2018-04-28T06:00:00),就截取前19位:

const date = new Date("Sat Apr 28 2018 00:00:00 GMT-0600 (MDT)");
const isoDateOnly = date.toISOString().slice(0, 10); // "2018-04-28"
const isoDateTime = date.toISOString().slice(0, 19); // "2018-04-28T06:00:00"

console.log(isoDateOnly);
console.log(isoDateTime);

另外要注意:toISOString()会把本地时间转成UTC时间,所以你看到的日期和原日期可能有差异(比如原日期是4月28日凌晨0点MDT,转成UTC就是当天6点,所以ISO字符串的日期还是4月28日,你的例子里显示2018-04-26可能是输入有误哦)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:10:56