たかふーのブログ このページをアンテナに追加 RSSフィード Twitter

2010-07-08

PHPのお勉強その4くらい(日付を作る)。


色々あります。

いまいです。


PHPで遊んでいる中で日付でギョッとしたので記念に。

まず、PHPJavaとは全く違う思想で作られた言語なんだなあ、としみじみ感じさせられた関数

<?php
print date("Y/m/d H:i:s", strtotime("tomorrow"))."\n";
?>

このstrtotimeという関数引数文字列の"tomorrow"です!(結果出力の為にdate関数や改行の追記をしてます。)

で返される結果が

2010/07/09 00:00:00

この黒魔術っぷりが凄いです。


PHPが、Javaのような「かくあるべし」が先にくる文化と違って「こんなん欲しい」が先に来る文化を背負った言語なのがよく分かりました!


という訳で、年・月・日・時・分・秒をバラバラに渡して日付を作ろうとすると、こんな感じに。

<?php
function create_date($y, $m, $d, $h, $mi, $s) {
  return strtotime("$y-$m-$d $h:$mi:$s");
}

print date("Y/m/d H:i:s", create_date(2010, 2, 28, 12, 34, 56))."\n";
  // 結果=2010/02/28 12:34:56
?>

ちなみにこれをJavaで書くとこう。

private Date createDate(int y, int m, int d, int h, int mi, int s) {
    Calendar calendar = Calendar.getInstance();
    calendar.set(y, m - 1, d, h, mi, s);
    return calendar.getTime();
}

@Test
public void test() {
    Date result = this.createDate(2010, 2, 28, 12, 34, 56);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    System.out.println(sdf.format(result));  // 結果=2010/02/28 12:34:56
}

なんか、新しい価値観に触れられた気持ちになりました!

ikeike443ikeike443 2010/08/19 15:24 ご存知かとは思いますが、JavaだとJoda-Timeが楽でいいですよ
http://www.ibm.com/developerworks/jp/java/library/j-jodatime.html

imai78imai78 2010/08/21 10:28 外部実装を利用しないでこういった機能をさらっと持ってるPHPって、やっぱりJavaとは全然ベクトルの違う言語なんですねえ。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/imai78/20100708/1278598254