日付に関するphpの記述みたいで役にたちそう
こんばんわ、最近MySQL、PHPの勉強を始めたものです。
ちょっと日付のことでお聞きしたいのですが、MySQLにデータ型dateで
+----------+------------+----------+
| ID | 日付 | 出欠 |
+----------+------------+----------+
| 1 | 2005-04-12 | 1 |
| 2 | 2005-04-19 | 0 |
| 3 | 2005-04-26 | 1 |
| 4 | 2005-05-04 | 1 |
| 5 | 2005-04-14 | 1 |
| 6 | 2005-04-14 | 0 |
+----------+------------+----------+
のように入力があったとして、この日付のデータをPHPを使って『2005年4月12
日(火)』というふうにWEB出力したいのですが可能なのでしょうか?
すいませんがお解かりになる方よろしくお願いします。
( Windows XP : MySQL )
よろずや 2005/07/31(日)
11:37:30 削除できません
MySQL というよりは PHP の話ですよね。
PHPの日付時刻関数を組み合わせて使って下さい。
y2y 2005/07/31(日)
14:15:03 削除できません
平成だけであれば以下のようなことでどうでしょうか。
・・・
略
// MySQL 問い合わせ
$sql = "select ID,extract(year from 日付)-1988,extract(month from 日
付),extract(day from 日付),dayofweek(日付),出欠 from テーブル名";
$rs = mysql_query($sql)or die(mysql_error());
//Web上のテーブルへ出力
<table border="1" cellspacing="0" cellpadding="10">
<tr>
<td>ID</a></td>
<td>日付</a></td>
<td>出欠席(1)</a></td>
</tr>
<?php while($col = mysql_fetch_array($rs)) { ?>
<tr>
<td><?php echo $col["ID"]; ?></a></td>
<td>平成<?php $myyear=$col["extract(year from 日付)-1988"];
echo $myyear; ?>年
<?php $mymonth=$col["extract(month from 日付)"];
echo $mymonth; ?>月
<?php $myday=$col["extract(day from 日付)"];
echo $myday;?>日
<?php $myweek=$col["dayofweek( 日付)"];
switch ($myweek){
case 1:echo "(日)" ; break;
case 2:echo "(月)" ; break;
case 3:echo "(火)" ; break;
case 4:echo "(水)" ; break;
case 5:echo "(木)" ; break;
case 6:echo "(金)" ; break;
case 7:echo "(土)" ; break;
}
?></a></td>
<td><?php echo $col["出欠"]; ?></a></td>
</tr>
<?php } ?>
</table>
以下略
・・・
y2y 2005/07/31(日)
14:22:13 削除できません
訂正です。
見落としました。
すいません。
2005年なら
>extract(year from 日付)-1988
はextract(year from 日付)でよいです。
たけ 2005/08/01(月)
13:13:57 削除できません
y2yさんお返事ありがとうございます。
なんですが、できませ~ん。
ぼくのやりかたが悪いのでしょうが。
今回ひとつのデータとかではなく全件のデータに対して出力したくてMySQL問
い合わせのところで
$sql="select * from テーブル名 order by id desc";
なんてやっているんですがここが原因なのでしょうか?
y2y 2005/08/01(月)
15:25:19 削除できません
> $sql="select * from テーブル名 order by id desc";
> なんてやっているんですがここが原因なのでしょうか?
では無理だと思います。
たけ 2005/08/03(水)
00:27:06 削除できません
$sql="select *,extract(year from 日付),extract(month from 日付),extrac
t(day from hiduke),dayofweek(日付) from テーブル名 order by id desc";
ってやったらできました。
すいません初心者なものであんまりよくわかっていません。
ところでちなみになんですけど、月の名前をJanuary,Febuarary...みたいに英
語表記のデータを取り出したいんですけど、
<?php $mymonth=$col["extract(month from 日付)"];
switch ($mymonth){
case 1:echo "January" ; break;
case 2:echo "February" ; break;
case 3:echo "March" ; break;
とやっていくしかないですかね?
英語表記ならもっとスムーズに出せそうな気もするんですが・・・
もしよい方法がございましたらすいませんが手解きくださいませんでしょうか
。
よろしくお願いします。
y2y 2005/08/03(水)
00:44:20 削除できません
monthname()関数があるので
monthname(日付)でよいと思います。
TAS 2005/08/05(金)
11:01:00 削除できません
こんいちは
日付の書式でしたら、今日は
$youbi=array("日","月","火","水","木","金","土");
print date("Y年n月j")."(".$youbi[date("w")].")";
2005年8月5(金)と出ます
たけ 2005/08/07(日)
10:21:19 削除できません
y2yさん、TASさんどうもありがとうございます。
できました。
お返事遅れてしまいすいません。