首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getDay()是否符合ISO8601?

getDay()是否符合ISO8601?
EN

Stack Overflow用户
提问于 2013-01-11 09:34:10
回答 3查看 4.9K关注 0票数 5

我很难弄清楚JavaScript的getDay()方法(http://www.w3schools.com/jsref/jsref_getday.asp)是否符合ISO8601。

getDay()返回周日的0,周一的1等等。

文档建议映射到日期名称,如下所示:

代码语言:javascript
复制
var weekday=new Array(7);
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
...
var n = weekday[(new Date()).getDay()];

我只能看到ISO标准将星期一定义为一周的第一天。我假设这意味着周一应该是0,而不是周日。

有没有人有这方面的经验?您能澄清一下吗?您是否建议覆盖该方法以使星期一成为一周的第一天?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-11 09:46:48

只有当您想要使用日期格式,其中工作日实际表示为数字时,或者您想要获取特定日期的周数字时,如何表示工作日才是重要的。

否则,如何用数字表示工作日就无关紧要了。星期一仍然是星期一。

票数 2
EN

Stack Overflow用户

发布于 2013-01-11 09:41:51

代码语言:javascript
复制
var weekday=new Array(7);
weekday[0]="Monday";
weekday[1]="Tuesday";
weekday[2]="Wednesday";
...
var n = weekday[((new Date()).getDay() + 6) % 7 + 1];

或者扩展日期原型:

代码语言:javascript
复制
Date.prototype.getISODay = function(){ return (this.getDay() + 6) % 7 + 1; }

然后使用

代码语言:javascript
复制
var n = weekday[(new Date()).getISODay()];
票数 5
EN

Stack Overflow用户

发布于 2013-01-11 10:42:00

我能找到的唯一的来源是Wikipediathis page,哪个州一周的日期应该是哪个数字。两者都建议星期的数字应该是从17,并从周一开始。

我支持ic3b3rg关于扩展Date.prototype的建议,尽管我建议使用UTC和文字来获取名称,下面的例子使用了一个对象和一个匿名函数,所以名称只需要定义一次。

代码语言:javascript
复制
(function () {
    var dayNames = {1: 'Monday', 2: 'Tuesday', 3: 'Wednesday', 4: 'Thursday', 5: 'Friday', 6: 'Saturday', 7: 'Sunday'};
    // Local time
    Date.prototype.getISODay = function () {return this.getDay() || 7;};
    Date.prototype.getISODayName = function () {return dayNames[this.getDay() || 7];};
    // Date.prototype.getDayName = Date.prototype.getISODayName
    // UTC
    Date.prototype.getUTCISODay = function () {return this.getUTCDay() || 7;};
    Date.prototype.getUTCISODayName = function () {return dayNames[this.getUTCDay() || 7];};
    // Date.prototype.getUTCDayName = Date.prototype.getUTCISODayName;
}());

由于日期名称将与ISO日期名称相同(假设为英文),因此我添加了额外的行,如果您想要这两行代码,可以将其取消注释。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14270281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档