JavaScript移除日期中的星期几名称

9
我想问一下是否有人知道如何从以下示例中删除“Day Name”,警报返回Sat Feb 29 2020,我不使用Moment.js,只使用Jquery,因为我只需要能够处理按照下面代码所写的格式的日期。
var mydate = new Date('29 Feb 2020');
alert(mydate.toDateString());

感谢您阅读此问题,希望我已经清楚表达了我的问题。


1
只是不要使用toDateString()函数并以自己的方式格式化日期,因为该函数总是返回那种格式。 - CME64
我曾经读过这个,但我并不真正理解如何在JavaScript中正确格式化日期,所以我认为可能有一种方法可以剪掉日期名称,无论如何,谢谢你的回答。 - Magthuzad
可能是重复的问题,参考如何格式化JavaScript日期 - Heretic Monkey
4个回答

30

Date#toDateString 方法总是以特定格式返回日期,如果你需要不同的格式,可以使用其他可用的方法或者使用多种方式进行删除。


1. 使用 String#splitArray#sliceArray#join 方法。

var mydate = new Date('29 Feb 2020');
// split  based on whitespace, then get except the first element
// and then join again
alert(mydate.toDateString().split(' ').slice(1).join(' '));


2. 使用 String#replace

var mydate = new Date('29 Feb 2020');
// replace first nonspace combination along with whitespace
alert(mydate.toDateString().replace(/^\S+\s/,''));


3. Using String#indexOf and String#substr
var mydate = new Date('29 Feb 2020');
// get index of first whitespace
var str = mydate.toDateString();
// get substring
alert(str.substr(str.indexOf(' ') + 1));


1
所有的都有效!非常感谢您如此快速地回答! - Magthuzad

3
如果您有一个日期对象实例,并且只想获取其中的某些部分,我建议使用日期对象API
mydate.getDate() + ' ' + mydate.toLocaleString('en-us', { month: "short" }) + ' ' + mydate.getFullYear()

请注意函数是基于本地时间的(有UTC变体,例如getUTCDate()),另外为了防止混淆,getMonth()是从零开始计数的。在JavaScript中处理日期是真正有趣的部分 ;)
然而,toLocaleString函数相对较新(IE11+),如果需要支持旧浏览器,请查看其他可能性

那么这就是你如何使用Javascript API手动创建日期的方法?谢谢! - Magthuzad
没问题,了解如何从日期的各个部分进行格式化总是很好的,而不是纠结于预定义格式函数(toDateStringtoISOString)的输出或使用外部库。 - Tomas Varga

2

正确的方法是使用DateTimeFormat。您可以通过操作DateTimeFormat内部的格式对象来进行调整。

let myDate = new Date('29 Feb 2020');
let formattedDate = new Intl.DateTimeFormat("en-US", {
  year: "numeric",
  month: "short",
  day: "2-digit",
}).format(myDate);

alert(formattedDate)


0
最简单的方法是将字符串中的所有字母字符替换掉。这样,一旦日期名称在不同的位置上,您就不会犯错误了。

var withoutDay = '29 Feb 2020'.replace(/[a-zA-Z]{0,1}/g,'').replace('  ', ' ');
alert(withoutDay);

代码 replace(/[a-zA-Z]{0,1}/g,'') 将从字符串中替换所有字母字符,replace(' ', ' '); 将删除双空格。

希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接