週間カレンダーについて - PHPプロ!Q&A掲示板

2611

  • 0P

週間カレンダーについて

質問日時 / 2010年3月9日 17:13    回答数 / 8件

Questioner:  hirozapp  このエントリーをはてなブックマークに追加 

キーワード / 週間カレンダー    日付表示   

初心者です!
WEBで本日から始まる週間表示で、土曜日は青日曜日は赤表示になり
かつ、それぞれの日付をクリックすると、その日付でのメモが表示
されるものを作りたいのですが、どなたかご教授下さいませ・・・
よろしくお願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01shimixえっと・・。「何が」わからないのか読み取れません。
┃┗A01-1hirozapp早速ありがとうございます。 詳しく書いてなくすい
┃ ┗A01-1-1shimix>リンク先は動的に「日付け.html」である必要はありま
┃  ┗A01-1-1-1hirozappありがとうございます。 > では、一日経過したらH
┃   ┗A01-1-1-1-1shimix>そのあたりの更新プログラムはすでにあります。です
┃    ┗A01-1-1-1-1-1hirozapp本当にありがとうございます! 助かりました!
┃     ┗A01-1-1-1-1-1-1shimix$strday = date('Y/m/d'); として、本日日付をセッ
┃      ┗A01-1-1-1-1-1-1-1hirozapp完璧です!!! 本当にありがとうございました!!
┗A02magicflute2この意見は投稿者によって削除されました。

回答一覧

並び替え:

A01 参考になった
answerershimix [3月9日 17:47]

えっと・・。「何が」わからないのか読み取れません。今時点、ご自分ではどの程度まで書けているのでしょうか?「本日」から7日分の日付を取得する部分でしょうか?それとも青や赤の表示の部分でしょうか(これはスタイルシートでどうにかしないとanchorの色と重複しますよね)。「その日付でのメモが表示」と書いてますが、その「メモ」というのはテキストファイルなのかデータベースにあるものなのか、何も説明がありません。

で、とりあえず「メモが表示」というのを「テキストファイルへのリンク」として書くとこんな感じですかね。
  1. <?php
  2. $strday = date('Y/m/d');
  3. for ($i=0$i < 7$i++) {
  4.   $today = strtotime('+' . $i . 'Day ' . $strday);
  5.   $textf = date('Ymd'$today);
  6.   $youbi = date('w'$today);
  7.   if ($youbi == 0) {
  8.     print '<span><a href="' . $textf . '.txt" style="color:red">' . date('Y/m/d'$today) . '</a></span><br />' . PHP_EOL;
  9.   }
  10.   else if ($youbi == 6) {
  11.     print '<span ><a href="' . $textf . '.txt" style="color:blue">' . date('Y/m/d'$today) . '</a></span><br />' . PHP_EOL;
  12.   }
  13.   else {
  14.     print '<span><a href="' . $textf . '.txt" style="color:black">' . date('Y/m/d'$today) . '</a></span><br />' . PHP_EOL;
  15.   }
  16. }
  17. ?>
#多分、ツッコミどころ満載です(汗

何をどうしたいのか、もう少し詳しく書いて頂かないとこれ以上は書けません(書きません)。

この意見に回答する

ツリーへ TOPへ

A01-1
replyerhirozapp [3月9日 18:21] (最終編集:3月9日 18:27)

早速ありがとうございます。

詳しく書いてなくすいませんでした。

要は本日から始まる週間で、各日付ごとに、日付をクリックすると、各日付用の内容が
書かれたhtmlファイルにリンクするということなのです。

ですので、各日付けごとにリンクする必要があります。

リンク先は動的に「日付け.html」である必要はありません。

単純に1.html 2.html 3.html 4.html 5.html 6.html 7.html

で良いかと思います。


あと上の内容ですと、「PHP_EOL」というのが表に表示されてしまいます・・・

よろしくお願いします。

この意見に回答する

ツリーへ TOPへ

A01-1-1 満足
replyershimix [3月9日 19:07] (最終編集:3月9日 19:11)

>リンク先は動的に「日付け.html」である必要はありません。
>
>単純に1.html 2.html 3.html 4.html 5.html 6.html 7.html
>
>で良いかと思います。

では、一日経過したらHTMLファイルを転送し直すのでしょうか?それはあんまりな仕様だと思います。そのあたりを先に決めないと、手戻りの元です。


>あと上の内容ですと、「PHP_EOL」というのが表に表示されてしまいます・・・

うーん・・。どういうテスト環境でしょうか。ちょっと不思議ですね。とりあえずPHP_EOLは"\n"(もしくは"\r\n")に置換してかまいません。

  http://www.php.net/manual/ja/reserved.constants.php

  1. <?php
  2. $strday = date('Y/m/d');
  3. for ($i=0$i < 7$i++) {
  4.   $today = strtotime('+' . $i . 'Day ' . $strday);
  5.   $textf = $i + 1;
  6.   $youbi = date('w'$today);
  7.   $color = 'black';
  8.   if ($youbi == 0) { $color = 'red'}
  9.   if ($youbi == 6) { $color = 'blue'}
  10.   print '<a href="' . $textf . '.html" style="color:' . $color . '">' . date('Y/m/d'$today) . '</a><br />' . PHP_EOL;
  11. }
  12. ?>
#少しだけ手直し。でもcolorはCSSのセレクタ(class名)でコントロールしたいところです。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1
replyerhirozapp [3月9日 19:16] (最終編集:3月9日 19:19)

ありがとうございます。

> では、一日経過したらHTMLファイルを転送し直すのでしょうか?それはあんまりな仕様だと思います。そのあたりを先に決めないと、手戻りの元です。

そのあたりの更新プログラムはすでにあります。ですので、単純にあらかじめ決まったファイル名の1~7.htmlに日付けごとにリンクする必要性があるのです。そこの部分が一番実現したいところです。

PHP_EOLは省いても動きました!

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1 満足
replyershimix [3月9日 19:22]

>そのあたりの更新プログラムはすでにあります。ですので、単純に1~7種類のhtmlに
>日付けごとにリンクする必要性があるのです。

あぁ、そういうことですね。それはよかったですね。更新はcron実行でしょうけど、php?それともsh?

#まぁどっちでもいいか・・。すでに回答すべきことは全部書いてますし(汗


>PHP_EOLは省いても動きました!

それはそうでしょうけど、PHP_EOLが"\n"(もしくは"\r\n")として扱われない環境というのも珍しいです(なので環境=phpのバージョンを尋ねたのです)。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1
replyerhirozapp [3月9日 19:40]

本当にありがとうございます!

助かりました!

あともう一つ! ちなみにタイムゾーンをずらすことは可能ですか?

日が変わるタイミングをずらすのは
どういうふうに表記すればよいのでしょうか?

重ね重ねお手数ですいません・・・

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1-1 満足
replyershimix [3月9日 19:58]

$strday = date('Y/m/d');

として、本日日付をセットしている部分で、date()に第二引数を渡す。

RTFM
  http://jp.php.net/manual/ja/function.date.php

  1. <?php
  2. print date('Y/m/d H:i:s') . '<br />';
  3. print date('Y/m/d H:i:s'time() - 7 * 60 * 60);
  4. ?>

やってみればわかることなので、説明は要らないですね。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1-1-1
replyerhirozapp [3月9日 20:19]

完璧です!!!

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

この意見に回答する

ツリーへ TOPへ

A02
answerermagicflute2 [3月9日 19:46] (最終編集:3月9日 20:09)

この意見は投稿者によって削除されました。

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
負荷時のmysql_connect()エラー
 このエントリーをはてなブックマークに追加 
A
これはPHPというよりOSまたはMySQLのコミュニティで質問されたほうがいいと思います。 ぱっと思いついた範囲で記すと MySQL等のDBに「ある時点において同時に接続可能なクライアントの最大数」に制限があるよう...

>>続きを読む

今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)