人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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


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

●質問者: ytk141
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● a-kuma3
●450ポイント ベストアンサー

関数 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);
 } // 翌日セット
}

a-kuma3さんのコメント
>> こちらを月曜日の0:00に切り替わる設定から、日曜日の21:00に週の日付が切り替わるように設定を出来ますでしょうか? << こんな感じかなあ... >|javascript| function wtWeek(d) { // ★ここを変更 // d.setDate(d.getDate()+1-d.getDay()); // 今週の日曜日へ移動 var dd = d.getDay(); var hh = d.getHour(); if (dd == 0 && hh < 21) { dd += 7; } d.setDate(d.getDate()+1-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); } // 翌日セット } ||< 「★ここを変更」?「★ここまで」の間を変えてます。

ytk141さんのコメント
早速のご回答ありがとうございます。 変更箇所を修正すると、今度は日付が表示されなくなってしまいました。 お手数ですが確認お願いできますでしょうか? 何卒よろしくお願いいたします。

a-kuma3さんのコメント
>> 変更箇所を修正すると、今度は日付が表示されなくなってしまいました。 << ごめんなさい、スペルミス。 >|javascript| function wtWeek(d) { // ★ここを変更 // d.setDate(d.getDate()+1-d.getDay()); // 今週の日曜日へ移動 var dd = d.getDay(); // var hh = d.getHour(); ★getHour() じゃなくて gerHours() var hh = d.getHours(); if (dd == 0 && hh < 21) { dd += 7; } d.setDate(d.getDate()+1-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); } // 翌日セット } ||<

ytk141さんのコメント
ありがとうございます!本当に助かります。。 こちら日曜の21時に日付が切り替わった際に、日付のタブも月曜日に自動で移動するようにすることは可能でしょうか? お手数をおかけいたしますが、何卒よろしくお願いいたします。

a-kuma3さんのコメント
>> こちら日曜の21時に日付が切り替わった際に、日付のタブも月曜日に自動で移動するようにすることは可能でしょうか? << こんな感じかなあ... >|javascript| $(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"); }); ||<

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

2 ● snow0214
●50ポイント

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>

ytk141さんのコメント
ありがとうございます! 無事解決出来ました!

質問者から

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


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ