【问题标题】:Javascript Remove Day Name from DateJavascript从日期中删除日期名称
【发布时间】:2018-01-22 14:46:06
【问题描述】:

我想问是否有人知道如何从以下示例中删除日期名称,警报返回 Sat Feb 29 2020,我不使用 Moment.js 仅 Jquery,因为我只需要能够处理下面写成代码的格式。

var mydate = new Date('29 Feb 2020');
alert(mydate.toDateString());

感谢您阅读这个问题,希望我能弄清楚我的问题是什么

【问题讨论】:

  • 只是不要使用 toDateString() 并按照自己的方式格式化您的日期,因为该函数总是返回该格式
  • 我已经读过这方面的内容,但我真的不明白如何在 javascript 中正确格式化日期,所以我虽然可以有一种方法来删除日期名称,但无论如何感谢您的回答跨度>

标签: javascript jquery date


【解决方案1】:

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.使用String#indexOfString#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));

【讨论】:

  • 所有这些都有效!非常感谢您这么快回答!
【解决方案2】:

如果你有一个 Date 对象实例并且只想要它的某些部分,我会选择Date object API

mydate.getDate() + ' ' + mydate.toLocaleString('en-us', { month: "short" }) + ' ' + mydate.getFullYear()

请记住,函数是基于本地时间的(有 UTC 变体,例如 getUTCDate()),同时为了防止一些混淆,getMonth() 是从零开始的。在 JavaScript 中处理日期才是真正有趣的开始;)

toLocaleString 功能相对较新(IE11+),如果您需要支持旧版浏览器,请查看other possibilities

【讨论】:

  • 这就是您使用 Javascript API 手动创建日期的方式?谢谢!
  • 没问题,很高兴知道您可以从其部分格式化日期,而不是摆弄预定义格式函数的输出(toDateStringtoISOString)或使用外部库。
【解决方案3】:

最简单的方法是替换字符串中的所有字母字符。这样,一旦日期名称位于不同的位置,您就不会出错。

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

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

我希望这会有所帮助。

【讨论】:

    【解决方案4】:

    正确的方法是使用 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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-06
      • 2021-09-11
      • 2015-02-24
      • 2014-09-19
      • 1970-01-01
      • 2020-09-30
      • 1970-01-01
      相关资源
      最近更新 更多