Javascript週間カレンダーを月曜始まりに。

現在、こちらのような週間カレンダーをJavascriptを使い作成しております。
http://sample.ul-inc.jp/

曜日の取得、曜日によるタブの自動切り替えの設定は出来たのですが、週の日付の更新が日曜日になってしまいます。
日曜の0時に週の日付が更新されてしまう状態です。
なので、日曜日に閲覧すると次の週の日付が表示されてしまっています。

こちらを、月曜の0時に日付が更新されるように設定をすることは可能でしょうか?


何卒よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/06/16 23:17:40
  • 終了:2014/06/17 03:05:40

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4595ベストアンサー獲得回数19342014/06/16 23:34:28

ポイント450pt

関数 wtWeek() に、ちょっと手を入れてみました。
多分、期待通りに動くと思うのですけれど...

function wtWeek(d) {
// ★ここを変更
//  d.setDate(d.getDate()+1-d.getDay()); // 今週の日曜日へ移動
    var j = d.getDay();
    if (j == 0) {
        j += 7;
    }
    d.setDate(d.getDate()+1-j); // 今週の月曜日へ移動
// ★ここまで
    w=new Date(d); // 表示週を保存
    document.all("ym").innerHTML=d.getFullYear()+"/"+(d.getMonth()+1); // 日曜の年月
    for(var i=0;i<7;i++) { // 一週間分
        document.all("wd"+eval(i)).innerHTML=( d.getMonth()+1 + "月" + d.getDate() + "日") ; // 日をセット
        d.setDate(d.getDate()+1);
    } // 翌日セット
}
他4件のコメントを見る
id:a-kuma3

こちら日曜の21時に日付が切り替わった際に、日付のタブも月曜日に自動で移動するようにすることは可能でしょうか?

こんな感じかなあ...

$(function() {
    $("#tab li").click(function() {
        var num = $("#tab li").index(this);
        $(".content_wrap").addClass('disnon');
        $(".content_wrap").eq(num).removeClass('disnon');
        $("#tab li").removeClass('select');
        $(this).addClass('select')
    });

    // ★ここを変えてみた
//  var index = new Date().getDay() - 1;
//  if (index < 0) {
//      index += 7;
//  }
    var now = new Date();
    var index = now.getDay() - 1;
    if (index < 0) {
        index += 7;
        if (now.getHours() >= 21) {
            index = 0;
        }
    }
    $("#tab li").eq(index).trigger("click");
});
2014/06/17 12:40:55
id:ytk141

ありがとうございます!
無事修正完了いたしました!
この度は非常に助けになりました。ありがとうございます。

2014/06/17 13:02:46

その他の回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4595ベストアンサー獲得回数19342014/06/16 23:34:28ここでベストアンサー

ポイント450pt

関数 wtWeek() に、ちょっと手を入れてみました。
多分、期待通りに動くと思うのですけれど...

function wtWeek(d) {
// ★ここを変更
//  d.setDate(d.getDate()+1-d.getDay()); // 今週の日曜日へ移動
    var j = d.getDay();
    if (j == 0) {
        j += 7;
    }
    d.setDate(d.getDate()+1-j); // 今週の月曜日へ移動
// ★ここまで
    w=new Date(d); // 表示週を保存
    document.all("ym").innerHTML=d.getFullYear()+"/"+(d.getMonth()+1); // 日曜の年月
    for(var i=0;i<7;i++) { // 一週間分
        document.all("wd"+eval(i)).innerHTML=( d.getMonth()+1 + "月" + d.getDate() + "日") ; // 日をセット
        d.setDate(d.getDate()+1);
    } // 翌日セット
}
他4件のコメントを見る
id:a-kuma3

こちら日曜の21時に日付が切り替わった際に、日付のタブも月曜日に自動で移動するようにすることは可能でしょうか?

こんな感じかなあ...

$(function() {
    $("#tab li").click(function() {
        var num = $("#tab li").index(this);
        $(".content_wrap").addClass('disnon');
        $(".content_wrap").eq(num).removeClass('disnon');
        $("#tab li").removeClass('select');
        $(this).addClass('select')
    });

    // ★ここを変えてみた
//  var index = new Date().getDay() - 1;
//  if (index < 0) {
//      index += 7;
//  }
    var now = new Date();
    var index = now.getDay() - 1;
    if (index < 0) {
        index += 7;
        if (now.getHours() >= 21) {
            index = 0;
        }
    }
    $("#tab li").eq(index).trigger("click");
});
2014/06/17 12:40:55
id:ytk141

ありがとうございます!
無事修正完了いたしました!
この度は非常に助けになりました。ありがとうございます。

2014/06/17 13:02:46
id:snow0214 No.2

snow0214回答回数470ベストアンサー獲得回数1162014/06/16 23:47:17

ポイント50pt

JavaScriptの部分を、下の★印のように追加・変更してみてください。

<!--曜日メニュー-->
<script language="JavaScript">
var w;
function wtWeek(d) {
    dd = (d.getDay() == 0) ? 6 : (d.getDay()  - 1);       //★追加
    d.setDate(d.getDate() - dd); // 今週の日曜日へ移動 ★変更
    w=new Date(d); // 表示週を保存
    document.all("ym").innerHTML=d.getFullYear()+"/"+(d.getMonth()+1); // 日曜の年月
    for(var i=0;i<7;i++) { // 一週間分
        document.all("wd"+eval(i)).innerHTML=( d.getMonth()+1 + "月" + d.getDate() + "日") ; // 日をセット
        d.setDate(d.getDate()+1);} // 翌日セット
}

function sj() {
    wtWeek(new Date());
}

function mvWeek(dd) {
    w.setDate(w.getDate()+dd); // 週移動
    wtWeek(w);
} 
</script>
id:ytk141

ありがとうございます!
無事解決出来ました!

2014/06/17 03:05:06
id:ytk141

申し訳ございません。
こちらを月曜日の0:00に切り替わる設定から、日曜日の21:00に週の日付が切り替わるように設定を出来ますでしょうか?
お手数おかけいたしますが、何卒よろしくお願いいたします。

  • id:Mook
    wtWeek 関数の先頭行を
      d.setDate(d.getDate() - ( ( d.getDay() + 6 ) % 7 ) );
    にするくらいでダメかな?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません