DateInterval/DatePeriod
<?php
$db = new DateTime('2009-12-31');
$de = new DateTime('2010-12-31');
$next = 'third tuesday of next month';
$di = DateInterval::createFromDateString($next);
$dp = new DatePeriod($db, $di, $de, DatePeriod::EXCLUDE_START_DATE);
foreach($dp as $dt) {
echo $dt->format("F jS\n") . "<br>\n";
}
?>
Output
January 19th
February 16th
March 16th
April 20th
May 18th
June 15th
July 20th
August 17th
September 21st
October 19th
November 16th
December 21st
Controllable strtotime() via date_create_from_format()
<?php
$date = strtotime("08-01-07");
echo date("M.j, Y", $date);
echo "<br>\n";
$date = date_create_from_format("m-d-y", "08-01-07");
echo $date->format('M.j, Y');
?>
Output
Better error reporting when we are unable to parse the date.
<?php
try {
$date = new DateTime('Nov 33, 2011');
} catch(Exception $E) {
print_r($E->getMessage());
}
?>
Output
Failed to parse time string (Nov 33, 2011) at position 4 (3): Unexpected character