如何充分获取星期几?

时间:2019-05-22 19:17:40

标签: javascript date

如何充分利用一周中的某几天?

这是我的代码:

var date = new Date();

var n = date.toDateString();

我希望的输出显示Wednesday, May 22 2019 但显示:Wed May 22 2019

5 个答案:

答案 0 :(得分:1)

class Foo {
    getFormattedDate() {  
      const date = new Date();
      const dateFormatOptions = { 
        weekday: 'long', 
        year: 'numeric', 
        month: 'long', 
        day: 'numeric' 
      };
      return date.toLocaleDateString('en-GB', dateFormatOptions);
    }
}

const foo = new Foo();
console.log(foo.getFormattedDate())

这是您可以做的事情。此解决方案的优点是,您可以轻松添加支持的不同语言环境。

答案 1 :(得分:1)

JavaScript中的默认Date对象对toLocaleDateString()方法中的格式设置的支持有限:Date​.prototype​.toLocale​Date​String() - JavaScript | MDN

有一些限制(例如,某些移动浏览器不支持所有功能),但是值得一看的是在重新发明轮子之前,看看是否有可以使用的功能。

例如,以下代码将使您非常接近所要查找的格式(日期和年份值之间只是一个逗号):

var today = new Date();
var formatOptions = {weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };

console.log(today.toLocaleDateString('en-US', formatOptions));

答案 2 :(得分:0)

如果您不喜欢缩写,则必须根据Date对象提供的信息构造自己的字符串。 不幸的是,它只返回星期几的0-6和一个月的0-11的整数-因此您必须设置一个具有匹配名称的数组。

这是一个例子:

var now = new Date();
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var months = ["January", "February", "March", "April", "May", "June", "July", "October", "November", "December"];
console.log(days[now.getDay()] + ", " + months[now.getMonth()] + " " + now.getDate() + " " + now.getFullYear());

答案 3 :(得分:0)

在javascript Date对象中,您只能使用getDay()方法获得表示特定日期的整数值。您可以通过在Date.prototype上创建自定义方法来扩展Date.prototype,如下所示:

Date.prototype.getFullDayName = function(){

    var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
    var fullDay = this.toDateString().replace(/.+?\s/,days[this.getDay()]+" ")
    return fullDay
}

上面的方法将为您提供日期对象的全日名称,然后像

那样命名
 date.getFullDayName()
 // "Thursday May 23 2019"

答案 4 :(得分:0)

您可以使用moment.js库来实现此日期格式。

此代码段将以您请求的格式(如果您已下载并导入moment.js)将日期打印到控制台。

dddd代表星期几全名

const start = moment('2016-02-27');
console.log(start.format('dddd YYYY MM DD'));

> Output : "Saturday 2016 02 27"