JS中日期的日期名称

Dhr*_*oti 47 javascript jquery

我需要显示一个日期的名称(如"05/23/2014"),这是我从第三方获得的.

我尝试过使用Date,但我只得到了约会.

获取当天名称的正确方法是什么?

RWC*_*RWC 114

Ahum,三年后......

为什么没有人使用标准javascript Date类提供的方法(Callum Linington除外)?

请参阅https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

从日期获取日期名称:

function getDayName(dateStr, locale)
{
    var date = new Date(dateStr);
    return date.toLocaleDateString(locale, { weekday: 'long' });        
}

var dateStr = '05/23/2014';
var day = getDayName(dateStr, "nl-NL"); // Gives back 'Vrijdag' which is Dutch for Friday.
Run Code Online (Sandbox Code Playgroud)

在阵列中获取所有工作日:

function getWeekDays(locale)
{
    var baseDate = new Date(Date.UTC(2017, 0, 2)); // just a Monday
    var weekDays = [];
    for(i = 0; i < 7; i++)
    {       
        weekDays.push(baseDate.toLocaleDateString(locale, { weekday: 'long' }));
        baseDate.setDate(baseDate.getDate() + 1);       
    }
    return weekDays;
}

var weekDays = getWeekDays('nl-NL'); // Gives back { 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag', 'zondag'} which are the days of the week in Dutch.
Run Code Online (Sandbox Code Playgroud)

对于美国日期,请使用"en-US"作为区域设置.

  • 发布我的解决方案时,我根本不知道存在这种方法。确实,非常好的解决方案。直接提供国际化也很好。另外,很高兴学习新的东西:P (2认同)

Joe*_*e50 82

您可以使用该Date.getDay()方法,该方法在周日返回0,在星期六返回6.因此,您只需创建一个带有日期名称名称的数组:

var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var d = new Date(dateString);
var dayName = days[d.getDay()];
Run Code Online (Sandbox Code Playgroud)

dateString是您从第三方API收到的字符串.

或者,如果您想要日期名称的前3个字母,则可以使用Date对象的内置toString方法:

var d = new Date(dateString);
var dayName = d.toString().split(' ')[0];
Run Code Online (Sandbox Code Playgroud)

这将取d.toString()输出中的第一个单词,即3个字母的日期名称.

  • 这可能不是最好的方法.标准的Javascript Date类提供了获取全名的方法.看看我的答案. (9认同)

小智 29

使用 Date.toLocaleString() 方法:

new Date(dateString).toLocaleString('en-us', {weekday:'long'})
Run Code Online (Sandbox Code Playgroud)


小智 13

let weekday = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][new Date().getDay()]
Run Code Online (Sandbox Code Playgroud)


小智 10

要获取任何给定日期的日期,只需将日期传递到新的 Date 对象中即可:

let date = new Date("01/05/2020");
let day = date.toLocaleString('en-us', {weekday: 'long'});
console.log(day);
// expected result = tuesday
Run Code Online (Sandbox Code Playgroud)

要了解更多信息,请访问 mdn-date.prototype.toLocaleString()( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString )


Cal*_*ton 7

var days = [
    "Sunday",
    "Monday",
    "...", //etc
    "Saturday"
];

console.log(days[new Date().getDay()]);
Run Code Online (Sandbox Code Playgroud)

很简单,请阅读JavaScript手册中的Date对象

要使用日期做其他事情,比如从中获取可读字符串,我使用:

var d = new Date();
d.toLocaleString();
Run Code Online (Sandbox Code Playgroud)

如果您只想要时间或日期使用:

d.toLocaleTimeString();
d.toLocaleDateString();
Run Code Online (Sandbox Code Playgroud)

您可以通过执行以下操作来解析日期:

var d = new Date(dateToParse);
Run Code Online (Sandbox Code Playgroud)

要么

var d = Date.parse(dateToParse);
Run Code Online (Sandbox Code Playgroud)


Bor*_*try 6

看看这个 :

var event = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };

console.log(event.toLocaleDateString('de-DE', options));
// expected output: Donnerstag, 20. Dezember 2012

console.log(event.toLocaleDateString('ar-EG', options));
// expected output: ??????? ?? ??????? ????

console.log(event.toLocaleDateString('ko-KR', options));
// expected output: 2012? 12? 20? ???
Run Code Online (Sandbox Code Playgroud)

来源:Mozilla 文档


who*_*ami 5

一行解决方案:

let day = ["sunday","monday","tuesday","wednesday","thursday","friday","saturday"][new Date().getDay()]
Run Code Online (Sandbox Code Playgroud)


小智 5

let weekday = new Date(dateString).toLocaleString('en-us', {weekday:'long'});
console.log('Weekday',weekday);
Run Code Online (Sandbox Code Playgroud)