PHP5から、DateTimeクラスというクラスが用意されています。
便利なので使用方法をメモします。

//オブジェクト生成
$test = new DateTime();

//今日の日時を出力
echo $test->format('Y-m-d H:i:s');

//modify()で3日進ませて
$test->modify('+3 day');

//3日後の日時を出力
echo $test->format('Y-m-d H:i:s'); 

//1か月単位での日時変更も可能
$test->modify('-1 month');//1か月前
$test->modify('+1 month');//1か月後

//日時指定でオブジェクトを生成
$test = new DateTime('2014-04-20');  

使い方は至ってシンプルで、DateTime()でオブジェクトを生成(初期化)し、format()で指定した形式で日時を出力、modify()でオブジェクトの日時を変更するといった具合。
DateTime() の引数に使える文字列は、strtotime()と同じです。
format() の引数に使える文字列はdate()と同じです。
modify() の引数に使える文字列はstrtotime()と同じです。

DateTime()の引数に使える文字列の例(これで全てではありません。)

形式 内容
2014-04-20 17:11:22 基本
2014-04-20 月日の頭のゼロは省略可能です。
7:2:5 時分秒の頭のゼロは省略可能です。年月日は、指定していないので今日になります。
4/20 18:33 年と秒も省略可能です。区切り文字は、スラッシュも可能。
Sun, 20 April 2014 17:11:22 RFC2822形式での指定も可能です。
Sun April 20 17:11:22 TC 2014 一応このような形式も可能です。
@1554433825 UNIXエポック秒での指定です。
now 今の時刻
today 今日の00:00:00
tommorow 次の日の00:00:00
yesterday 前の日の00:00:00
next Sat 次の土曜の00:00:00
last month 今日から1か月前

modify()の引数に使える文字列の例(これで全てではありません。)
modify()は、オブジェクトの日時を変更するメソッドです。

形式 内容
+1 day 次の日(時間分秒は、同じです。)
next month 次の月(時間分秒は、同じです。)
last week 一週間前(時間分秒は、同じです。)
3 years 単位は複数系でもよい。+は省略してもOK。
+1 hour -3 minutes 32 second 複数同時指定することもできます。

[対象]
PHP 5.X