Archive: 3月, 2010

2-1.簡単なものから・・・。

やはり、プログラムをするに当たって簡単なものから作った方が良いですよね。
データベースも使わず、ちょっとだけ便利なものということで、
カレンダーを作ってみたいと思います。

作るカレンダーは、次のようなものにします。

1.日付の指定をすることができる。
2.土日だけ色をつける
3.今日だけ太字にする。

特にデータベースを使うわけでも何でもないので
すぐに作れると思います。

では、始めてみましょう。

・・・・・。といわれても、何から初めて良いか分かりませんね。
では、まず今月のカレンダーを表示するために必要なものを考えてみましょう。

一つ目は、今月の最終日は何日なのか・・・。

1月なら31
2月なら28か29
3月なら30・・・・という具合ですが、分かると思いますが
閏年(うるうどし)の時は最終日が変動するので大変です。

ほかにも大変なことがあります。
それは曜日です。

月始めの日が何曜日なのか・・・。

・・・・・。

問題は山積ですが、本当に簡単に、今日の日付を表示するだけのプログラムを作ってみましょう。

<?php

	echo date("Y-m-d");

?>

ということで、完了・・・・。
簡単すぎますね・・・。だが、このdateの使い方が分からないと話になりませんね・・・。
次のサイトを見て下さい。
http://php.net/manual/ja/function.date.php

1-5.関数を制するものはプログラムを制す?
で説明したと思いますが、もう一度おさらいしてみましょう。

y = ax に当てはめて考えてみると、
string date( string format , int timestamp ); は、
日付(文字) = フォーマット(文字) × タイムスタンプ(数字) というのを表しています。

日付(文字)というのは、そのまま日付なのですっ飛ばしますが
次のフォーマットは、覚える必要が出てきます。(まぁ、毎回ネットで検索でもいいと思いますが・・・

上のソースでは、"Y-m-d"が、フォーマットの部分になります。
このフォーマットは、先ほどのURLに詳しく載ってますので、そちらを参考にして下さい。

今回使っているものだけ解説すると
Y : 年を4桁で表す。 例)2010
m : 月を2桁で表す。 例)02
d : 日を2桁で表す 例)31
というのをそれぞれ表しています。

そして、二つ目のタイムスタンプというのは、1970年1月1日をから起算する整数です。
1秒に1ずつ増える整数だと思っていただければいいのですが、
こんな表現ではわかりにくいので、詳しく書くと

1970年1月1日0時0分0秒 = 0
1970年1月1日0時0分1秒 = 1
1970年1月1日0時0分2秒 = 2
と続く値です。

ちなみに、現在記事を書いている時間は、
2010年03月14日 23:41:42 = 1268577702
になります。

date関数は、二つ目の引数にタイムスタンプ(整数)を入れると、そのタイムスタンプの日時のデータを返してくれます。
何も入れなければ、現在(たった今)のタイムスタンプを利用して日時を返してくれます。

つまり最初に書いたプログラムでは、今日の日付(2010-03-14)を返してくるということです。
このdate関数を使ってカレンダーを作っていきますので、
http://php.net/manual/ja/function.date.php
このマニュアルのフォーマットの箇所を、みておいて下さい。

3-1.最初が肝心!?

プログラムを作る上で、肝心なのは最初です。
最初にやることは、どんなものを作るのか(仕様)を前もって詰めて考えることです。
これをすることで、
1.何を作らなくてはいけないのか。
2.プログラムの中でも何をしなくてはいけないのか
3.どんな機能(関数)が必要なのか
と、ハッキリしてきます。

では、どんなものを作るか考えてみましょう。

今回は、一昔前に流行った『掲示板(BBS)』を作ってみたいと思います。
1.タイトル、本文を入力、表示する
2.管理者と、書いた本人は削除することができる。
3.独自のスキンに対応
4.データは、MySQLのデータベースを使ってみる。

こんな掲示板を作ってみますかね・・・。

では、次の手順で作ってみましょう。

1.データベースの準備をする。
2.見た目を作ろう。
3.データを登録する。
4.データを削除する。