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年前だったため、死んでいます)、バグを見つけました。シフトを計算する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 に答える