如何使用字符串方法显示不含星期的长格式日期?
用字符串方法实现不带星期的日期格式(Apr 04 2018)
嘿,我完全懂你的处境——导师明确要求必须用字符串方法来生成Apr 04 2018这种格式的日期,而你目前只会返回带星期的toDateString(),已经用数组和get方法搞定但不符合要求,对吧?别担心,咱们直接从toDateString()的输出入手,用字符串操作就能解决问题。
首先,先明确toDateString()的输出结构:它返回的是类似Wed Apr 04 2018这样的字符串,前面固定是3个字符的星期缩写加一个空格,总共占4个字符位置。基于这个固定格式,我们有两种简单的字符串方法可以用:
方法1:用slice()截取
直接跳过前4个字符(星期+空格),从第5个字符开始截取到末尾:
const targetDate = new Date('2018-04-04'); const formattedDate = targetDate.toDateString().slice(4); console.log(formattedDate); // 输出 "Apr 04 2018"
slice(4)会从字符串的索引4位置开始提取剩余部分,刚好完美去掉前面的星期部分。
方法2:用split() + join()组合
把toDateString()的结果按空格分割成数组,去掉第一个元素(也就是星期),再把剩下的元素用空格拼接回去:
const targetDate = new Date('2018-04-04'); const formattedDate = targetDate.toDateString().split(' ').slice(1).join(' '); console.log(formattedDate); // 同样输出 "Apr 04 2018"
这里split(' ')是字符串方法,把字符串拆成数组后,虽然用到了数组的slice(1),但核心操作都是基于toDateString()的字符串输出展开的,完全符合导师要求的“使用字符串方法”的规则。
这两种方法在所有现代浏览器里都稳定可靠,因为toDateString()的输出格式是标准化的,不会出现格式变动的问题。
内容的提问来源于stack exchange,提问作者Christy Bartholomew
相关产品推荐
相关产品推荐

