如何从moment().format()输出中提取YYYY-MM-DD格式日期?
嘿,这问题其实挺容易解决的,用Moment.js的原生方法就能轻松搞定,比自己手动处理字符串靠谱多了,给你几种方案参考:
提取YYYY-MM-DD格式日期的方法
1. 直接生成目标格式(最推荐)
既然你是用moment()创建的时间对象,完全不用先生成带时区的完整字符串,直接调用format()时指定YYYY-MM-DD格式就行:
const targetDate = moment().format('YYYY-MM-DD'); // 输出示例:"2018-05-30"
这种方式最稳妥,Moment会帮你处理好时区、日期计算等所有细节,不会因为格式变化出问题。
2. 从已有的完整字符串转换
如果你手里已经拿到了像2018-05-30T11:38:04+10:00这样的字符串,也可以把它传入Moment再格式化:
const fullDateTimeStr = "2018-05-30T11:38:04+10:00"; const dateOnly = moment(fullDateTimeStr).format('YYYY-MM-DD'); // 输出:"2018-05-30"
3. 字符串截取(应急方案,不推荐)
要是实在不想用Moment的方法,也可以利用ISO格式的固定结构——日期部分正好是字符串的前10个字符,直接截取就行:
const fullDateTimeStr = "2018-05-30T11:38:04+10:00"; const dateOnly = fullDateTimeStr.slice(0, 10); // 输出:"2018-05-30"
不过这种方法依赖字符串的固定格式,哪天格式变了(比如不是标准ISO格式)就会失效,所以还是优先用前两种原生方法哦。
内容的提问来源于stack exchange,提问作者blankface
相关产品推荐
相关产品推荐

