• ベストアンサー

年月日時分を指定してCSSを切り替えたいです

javascript初心者です。 時間帯や月だけを指定してCSSを切り替えるコードは見つけられたのですが、 年月日時分までを指定して切り替えるコードをみつけることができず、困っております。 ●年●月●日●時00分までは●.css、 ▲年▲月▲日▲時30分までは▲.css、 というように時間まで指定して、 お正月やお休みの日にも自動更新ができるようにしたいと思っています。 お分かりの方ぜひ教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

var list = [  { date: new Date (2011, 4-1, 29, 0, 0, 0, 000), css : '1.css' },  { date: new Date (2011, 4-1, 29, 20, 0, 0, 000), css : '2.css' },  { date: new Date (2011, 4-1, 29, 23, 0, 0, 000), css : '3.css' } ]; for (var t = +(new Date), i= 0, o; o = list[i++]; ) {  if (t < +(o.date)) {   document.write ('<link rel="stylesheet" href="' + o.css + '" type="text/css">');   break;  } }

shorty_tr
質問者

お礼

本当にありがとうございました!!助かりました!

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2
shorty_tr
質問者

補足

こういう感じで前にみつけた時間指定のコードを改変してもダメでした。 どうすればいいんでしょうか? <SCRIPT language="JavaScript"> <!-- aa = new Date(); yy = aa.getYear(); mm = aa.getMonth() + 1; dd = aa.getDate(); hh = aa.getHours(); tt = aa.getMinutes(); if (yy < 2000) { yy += 1900; } if (mm < 10) { mm = "0" + mm; } if (dd < 10) { dd = "0" + dd; } yymmddhhtt = yy + "/" + mm + "/" + dd + "/" + hh + "/" + tt; bgcss = new Array( "2011/4/28/15/00","2011/4/28/20/00","1.css", "2011/4/28/20/00","2011/4/29/20/00","2.css", ); for (i = 0; i < bgcss.length; i+=3) { if(bgcss[i]<=yymmddhhtt && yymmddhhtt<=bgcss[i+1]) { document.write('<LINK REL="stylesheet" HREF="' + bgcss[i+2] + '" TYPE="text/css">'); } } //--> </SCRIPT>

すると、全ての回答が全文表示されます。
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

やり方はわかるけど むしろ > 時間帯や月だけを指定してCSSを切り替えるコード が分かるのに なぜできないのかがわからないわ。 参考にしたコードが汎用的じゃなかったのかしら? まあ、それはとにかくとして 実装のためのキーワードは次のものね ・if文(もしくはswicth-case文) ・日時の取得 ・日時の判定

shorty_tr
質問者

補足

getMonth や getDate で取得した値を どうやって合体させるのかがわからないんです。 初心者ですみません。 それを合体させればそれ以降のif文の書き方はわかりますが そこの値の計算がわからないんです。

すると、全ての回答が全文表示されます。

関連するQ&A