一周的第一天- Date.js中的星期一

First day of week - Monday in Date.js

本文关键字:星期一 js 第一天 一周 Date      更新时间:2023-09-26

我对Date.js库有一些问题。我使用俄罗斯文化设置。一周的第一天设置为1。这意味着,我的一周应该从周一到周日。星期一应该是我调用时的返回值:Date.getDayNumberFromName("понедельник");//星期一,它应该返回0和Date.getDayNumberFromName("воскресенье");//星期天,它应该返回6

,当然,它应该是所有周计算的实际值。例如,今天(星期日,3月3日),代码:Date.monday()应该返回2月25日。但事实并非如此。为什么?我该怎么做,以改变全球"firstDayOfWeek"?

更新:小提琴有一些问题。我在自己的主机上做了一个例子:http://sulla.ru/lab/

我调试了这个几乎死了的库(死了,因为上次更新是大约4年前),我发现了错误。计算位移的sdf函数如下:

var sdf = function (n) {
    return function () {
    var t = $D.today(), shift = n - t.getDay();
        if (n === 0 && $C.firstDayOfWeek === 1 && t.getDay() !== 0) {
            shift = shift + 7;
        }
        return t.addDays(shift);
    };
};

,我把它改成:

var sdf = function (n) {
    return function () {
        var t = $D.today(), shift = n - t.getDay();
        if (n === 0 && $C.firstDayOfWeek === 1 && t.getDay() !== 0) {
            shift = shift + 7;
        } else if (t.getDay() === 0 && n !== 0) {
            shift = shift - 7;
        }
        return t.addDays(shift);
    };
};
显然,它解决了我的问题。我已经做了这个问题的bug票,并发送了答案。