1

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

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

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

4

1 回答 1

0

我调试了这个几乎死了的库(死了,因为上次更新大约是 4 年前),我发现了 bug。计算移位的 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);
    };
};

显然,它解决了我的问题。我已经为这个问题制作了错误票,并发送了答案。

于 2013-03-04T08:53:03.410 回答