「substr( )」関数と「strtotime( )」関数

MySQLに日付を登録する。
フィールドタイプは「datetime」で、以下のようになる。

「2006-08-06 07:00:00」

で、これをPHPでタイムスタンプに変換し、さらに「20060806」のように表記するには、何とするやずよ?と、しばらく考えていた。
で、最初に行っためんどくさい処理が「substr( )」関数を使った場合の以下。


/* ここから

※ $row[ARUHI] → MySQLから受け取るデータ。「2006-08-06 07:00:00」

$aruhi_year=substr($row[ARUHI],0,4);
$aruhi_month=substr($row[ARUHI],5,2);
$aruhi_day=substr($row[ARUHI],8,2);
$aruhi_time=substr($row[ARUHI],11,2);
$aruhi_minute=substr($row[ARUHI],14,2);
$aruhi_mktime=mktime($aruhi_time,$aruhi_minute,0,$aruhi_month,$aruhi_day,$aruhi_year);
$aruhi_nichiji=date("Ymd",$aruhi_mktime);

ここまで*/


という具合だ。
「substr( )関数」は文字列の一部を抽出する関数らしい。
「$row[ARUHI],0,4」ではつまり「文字列の最初(0)から4文字(4)を取り出す」という意味となる。

それを利用して、年・月・日・時・分をそれぞれ抽出し、タイムスタンプに変換してから「date( )」関数で日付に変換している。
手間、かかり過ぎである・・・。

これだとソースが複雑でわかりにくい。
何とかならんのか?

そこで「strtotime( )」関数を発見。

「strtotime( )」関数は英文形式の日付をタイムスタンプに変換する関数らしい。
で、これを使って先程のソースを書き換えてみると以下のように簡略化することができた。


/* ここから

※ $row[ARUHI] → MySQLから受け取るデータ。「2006-08-06 07:00:00」

$aruhi_mktime=strtotime($row[ARUHI]);
$aruhi_nichiji=date("Ymd",$aruhi_mktime);

ここまで*/


おぉ!
すばらしい!

どうせ出力結果が同じなら、簡単に記述できる方が楽だし、今後の修正もやりやすいはずだ。

ぬ!
もしやMySQLの段階でタイムスタンプに変換することも可能なのでは・・・。
むぅ・・・。
わがらん。

という具合に、まだまだ精進しなければいけない段階である。
[PR]
by bubuka_revival | 2006-08-06 07:00 | PHPメモ  

BBK
投稿者:BBK
住 所:不定
職 業:不明
※無職ではない
※コメント内に「http://」を禁止。

08/05/11(日)現在
BBK市

※人口増加。
※産業発達。
※交通整備。
※防犯対策。
※環境整備。

08/04/05(土)現在
BBK市


08/01/20(日)現在
BBK市


08/01/11(金)現在
BBK市


08/01/05(土)現在
BBK市


07/12/23(日)現在
BBK市
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
UserAction Extension
SnapCrab
Hawkeye

カテゴリ
日記
gifアニメ
gifアニネタ
見た夢
ubuntu
PHPメモ
PHPイジリ
HTMLメモ
CodeIgniter
Piece Framework
CakePHP
Ethna
xampp
MyMiniCity
チャーシュー
大相撲懸賞クイズ
フリーソフト
ツキン変更
もらい物
メタボリックシンドローム2
メタボリックシンドローム
体重

以前の記事
2011年 05月
2011年 01月
2010年 12月
more...

ライフログ










検索

その他のジャンル

ファン

記事ランキング

ブログジャンル

画像一覧

リンク
.。oO(βΓoG)
ぱんだのおへそⅡ
うたた寝 ろびんのすけの部屋
「geocity」に作ったページに行けます。