如何从YYYY-MM-DD格式的JS日期字符串中获取整数类型的年、月值?
提取年、月整数值的两种实现方案
方案1:直接拆分字符串(无额外依赖)
拿到的YYYY-MM-DD格式字符串结构固定,直接按短横线拆分后转整数即可:
// 示例日期字符串 const dateStr = '2021-10-13'; // 拆分得到 [年, 月, 日] 字符串数组 const dateArr = dateStr.split('-'); // 转成整数类型 const year = parseInt(dateArr[0], 10); // 输出 2021 const month = parseInt(dateArr[1], 10); // 输出 10
该方法性能最优,不需要依赖任何日期处理库,适合仅需要提取年月的简单场景。
方案2:通过moment库获取(项目已引入moment时推荐)
如果你的项目已经接入了moment库,不需要先format成字符串再拆分,直接从moment实例中取值即可,容错率更高:
// 从原始日期对象生成moment实例 const momentIns = moment(Date); const year = momentIns.year(); // 直接返回整数类型年份 2021 // moment的month()方法返回值为0-11(对应1-12月),需+1得到自然月份 const month = momentIns.month() + 1; // 返回整数类型月份 10
如果你手上只有format后的字符串,也可以重新解析后取值:
const dateStr = '2021-10-13'; const year = moment(dateStr, 'YYYY-MM-DD').year(); const month = moment(dateStr, 'YYYY-MM-DD').month() + 1;
内容的提问来源于stack exchange,提问作者Hakan Özel
相关产品推荐
相关产品推荐

