ごもちゃ箱BLOG

自作の PHP クラスライブラリ PEACH の開発日記です。

日付・時間操作用PHPライブラリを作りました

自作の PHP ライブラリの DT パッケージを本日リリースしました。
ドキュメントはコチラからどうぞ。

http://trashtoy.github.com/peach/

力尽きたので詳細は後日書きますが、例えばこんなことが出来ます。

<?php
// timezone = Asia/Tokyo (UTC+9) とします

require_once("/path/to/peach/DT/load.php");

$today     = new DT_Date(2012, 5, 21);
$tomorrow  = $today->add("date", 1);
$yesterday = $today->add("date", -1);
echo $today;     // "2012-05-21"
echo $tomorrow;  // "2012-05-22"
echo $yesterday; // "2012-05-20"

echo $today->get("year");  // "2012"
echo $today->get("month"); // "5"
echo $today->get("date");  // "21"

$d = $today->toDatetime()
           ->add("year", 1)
           ->add("date", -7)
           ->setAll(array("hour" => 12, "minute" => 34));
echo $d; // "2013-05-14 12:34"

/////////////////////

$d1 = DT_Date::now();
$d2 = DT_Datetime::now();
$d3 = DT_Timestamp::now();
echo $d1;        // "2012-12-18"
echo $d2;        // "2012-12-18 22:54"
echo $d3;        // "2012-12-18 22:54:31"

/////////////////////

$f1 = DT_W3cDatetimeFormat::getInstance();
$f2 = DT_HttpDateFormat::getInstance();
$f3 = DT_UnixTimeFormat::getInstance();
 
$d = new DT_Timestamp(2012, 5, 21, 7, 30, 45);
var_dump($d->format($f1)); // string(19) "2012-05-21T07:30:45"
var_dump($d->format($f2)); // string(29) "Sun, 20 May 2012 22:30:45 GMT"
var_dump($d->format($f3)); // string(10) "1337553045"

/////////////////////

$d1 = DT_Timestamp::parse("2012-05-21T07:30:45",           $f1);
$d2 = DT_Timestamp::parse("Sun, 20 May 2012 22:30:45 GMT", $f2);
$d3 = DT_Timestamp::parse(1337553045,                      $f3);

var_dump($d1->equals($d2)); // "bool(true)"
var_dump($d2->equals($d3)); // "bool(true)"
var_dump($d3->equals($d1)); // "bool(true)"

?>

このテーマだと PHP の色分けがちょっと見にくいなぁ。
(※追記) Monokai っぽい感じにしました。参考: http://nikuyoshi.hatenablog.com/entry/20111101/1320166386