【发布时间】:2013-07-31 07:28:21
【问题描述】:
我有一个 (yyyy-mm-dd) 格式的日期字符串,如何从中获取工作日名称?
示例:
- 对于字符串“2013-07-31”,输出为“Wednesday”
- 对于使用
new Date()的今天日期,输出将基于当前星期几
【问题讨论】:
标签: javascript string function date dayofweek
我有一个 (yyyy-mm-dd) 格式的日期字符串,如何从中获取工作日名称?
示例:
new Date() 的今天日期,输出将基于当前星期几【问题讨论】:
标签: javascript string function date dayofweek
如果您在项目的某处包含此功能,
// Accepts a Date object or date string that is recognized by the Date.parse() method
function getDayOfWeek(date) {
const dayOfWeek = new Date(date).getDay();
return isNaN(dayOfWeek) ? null :
['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][dayOfWeek];
}
您将能够像这样在任何地方轻松使用它:
getDayOfWeek( "2013-07-31" )
> "Wednesday"
getDayOfWeek( new Date() ) // or
getDayOfWeek( Date.now() )
> // (will return today's day. See demo jsfiddle below...)
如果使用了无效的日期字符串,将返回一个空值。
getDayOfWeek( "~invalid string~" );
> null
有效日期字符串基于Date.parse() method as described in the MDN JavaScript reference。
演示: http://jsfiddle.net/samliew/fo1nnsgp/
当然你也可以使用moment.js插件,尤其是如果需要时区的话。
【讨论】:
这里是单线解决方案,但请先检查支持。
let current = new Date();
let today = current.toLocaleDateString('en-US',{weekday: 'long'});
console.log(today);
let today2 = new Intl.DateTimeFormat('en-US', {weekday: 'long'}).format(current);
【讨论】:
使用以下代码:
var gsDayNames = [
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
];
var d = new Date("2013-07-31");
var dayName = gsDayNames[d.getDay()];
//dayName will return the name of day
【讨论】: