在JavaScript中如何将JSON格式日期转换为数字类型月份
JavaScript提取ISO日期字符串中数字月份的实现方案
你拿到的是标准ISO 8601格式的日期字符串,有两种常用实现方式,均可直接在Appscript环境运行:
方法1:字符串截取(优先推荐)
ISO格式固定为YYYY-MM-ddT...结构,月份字符位置固定,直接截取后转数字即可,无需处理时区、日期解析兼容性问题,性能最高:
function getMonthFromISO(dateStr) { // 截取索引5-7位的月份字符(左闭右开) const monthPart = dateStr.slice(5, 7) // 转数字自动去除前置0,比如"01"转为1 return Number(monthPart) }
测试效果:
- 输入
getMonthFromISO("2020-01-15T22:00:00.000Z")返回1 - 输入
getMonthFromISO("2020-09-15T22:00:00.000Z")返回9
方法2:Date对象解析
如果后续还要处理其他日期逻辑,可以用内置Date对象解析:
function getMonthFromISOByDate(dateStr) { const date = new Date(dateStr) // getMonth()返回0-11的月份索引,需要+1得到自然月份 return date.getMonth() + 1 }
注意:如果你的日期字符串带有时区偏移而非UTC时间(结尾不带Z),需要确认时区适配规则,避免出现月份偏移。
批量处理返回数据示例
你可以直接用上述方法批量处理接口返回的JSON对象:
// 接口返回的原始数据 const rawData = { "Employee Name":"Ntombi Hlatshwayo", "Issueing Manager":"Nomsa Nxumalo", "Type Of A Warning":"Insubordination Final", "Date":"2020-09-15T22:00:00.000Z", "Current Date":"2021-11-02T12:24:32.428Z", "Status":413 } // 转换日期字段为数字月份 const processedData = { ...rawData, Date: getMonthFromISO(rawData.Date), // 转换结果为9 "Current Date": getMonthFromISO(rawData["Current Date"]) // 转换结果为11 }
内容的提问来源于stack exchange,提问作者Sands45
相关产品推荐
相关产品推荐

