DateTimeクラスが便利そうなのは分かるけど、お作法がめんどくさそうなのでとりあえずdate関数を使っちゃってる方に向けて贈る、思考停止していてもコピペすれば使える例文集です。
まさに俺得記事。
一応リファレンスがないのはアレなので貼っておきます。時間があったらちゃんと読んだほうがいいですよ><
http://www.php.net/manual/ja/class.datetime.php
1. 基本形(現在時刻出力)
1 2 3 |
//基本形 $dt = new DateTime(); echo $dt->format("Y-m-d H:i:s"); //2014-04-27 22:00:00 |
format()メソッドで時刻を出力。引数に時刻の書式文字列を入力して、好みの書式で出力します。
「DateTime::ATOM」や「DateTime::ISO8601」のように、予め定義された定数を引数に渡しても出力してくれます。
定数以外で書式を作りたいときはdate関数のページを参照するとよろし。
http://jp2.php.net/manual/ja/function.date.php
2. 時間を指定して出力
1 2 3 4 5 6 7 8 9 |
//時刻の指定 $dt = new DateTime("2014-04-27 22:00:00"); echo $dt->format("Y-m-d H:i:s"); //2014-04-27 22:00:00 //時刻の指定2 $dt = new DateTime(); $dt->setDate(2014, 4, 27); $dt->setTime(22, 0, 0); echo $dt->format("Y-m-d H:i:s"); //2014-04-27 22:00:00 |
コンストラクタの引数に直接時刻を入力するか、setDateメソッド、setTimeメソッドを使用して時刻を指定します。
コンストラクタが時刻として認識してくれるパターンは、こちらのページを参照すると幸せになれるかも。
http://www.php.net/manual/ja/datetime.formats.php
3. 時間の足し算、引き算
1 2 3 4 5 6 7 8 9 10 11 12 |
//足し算 $dt = new DateTime("2014-04-27 22:00:00"); $dt->add(new DateInterval("P5D")); //5日分加算 $dt->format("Y-m-d H:i:s"); //2014-05-02 22:00:00 $dt->add(new DateInterval("PT10H10M10S")); //10時間10分10秒分加算 $dt->format("Y-m-d H:i:s"); //2014-05-03 08:10:10 //引き算 $dt = new DateTime("2014-04-27 22:00:00"); $dt->sub(new DateInterval("P10D")); //10日分減算 $dt->format("Y-m-d H:i:s"); //2014-04-17 22:00:00 |
開始日時、終了日時を得る時なんかに使うかもしれないです。
DateIntervalクラスコンストラクタの引数の書式は一度覚えてしまうと結構便利。
引数の書式については、こちらの記事を読んだほうが分かりやすいかもしれないです。
PHP 5.3 の DateTime オブジェクト関連の便利な新機能 – 肉とビールとパンケーキ by @sotarok
http://sotarok.hatenablog.com/entry/20090716/php_53_datetime_dateinterval
4. タイムゾーンを指定する
1 2 3 4 |
//引数で指定 $dt = new DateTime("2014-04-27 22:00:00", new DateTimeZone("Asia/Tokyo")); //setTimezone()メソッドで指定 $dt->setTimezone(new DateTimeTone("Asia/Tokyo")); |
DateTimezoneオブジェクトを、上記いずれかの方法で渡すとタイムゾーンを指定できます。
タイムゾーンの書式についてはこちらを参照するといいです。
http://www.php.net/manual/ja/timezones.php
とりあえずこんな感じで。
ここまで書いといてからいうのもアレですけど、本当に急いでいるならdate関数を使ったって全然問題無いと思います(´・ω・`)