// dtdiff.php - Calculate date/time differences - RJM Programming - March, 2014
$startblurb = "";
$endblurb = "";
$mode = "";
$dtz = " GMT";
date_default_timezone_set("Europe/London");
if (isset($_GET['startdate']) && isset($_GET['enddate'])) {
$startdate = new DateTime($_GET['startdate']);
$enddate = new DateTime($_GET['enddate']);
} else if (isset($_GET['startdate'])) {
$startdate = new DateTime($_GET['startdate']);
$enddate = new DateTime();
$endblurb = " to Now" . " (" . $enddate->format("Y-m-d H:i:s") . $dtz . ")";
} else if (isset($_GET['enddate'])) {
$enddate = new DateTime($_GET['enddate']);
$startdate = new DateTime();
$startblurb = " from Now" . " (" . $startdate->format("Y-m-d H:i:s") . $dtz . ")";
} else if (1 == 1) {
$startdate = new DateTime();
$startblurb = " from Now" . "
(" . $startdate->format("Y-m-d H:i:s") . $dtz . ")";
$enddate = $startdate;
$endblurb = " to
Now" . "
(" . $enddate->format("Y-m-d H:i:s") . $dtz . ")";
} else {
$startdate = new DateTime("2014-03-20 12:34:56");
$enddate = new DateTime("2014-04-01 13:34:56");
}
$diff = $startdate->diff($enddate);
if (isset($_GET['startblurb'])) {
if ($_GET['startblurb'] != "") {
$startblurb = " from Start event '" . $_GET['startblurb'] . "'
(" . $startdate->format("Y-m-d H:i:s") . $dtz . ")";
}
}
if (isset($_GET['endblurb'])) {
if ($_GET['endblurb'] != "") {
$endblurb = " to End event '" . $_GET['endblurb'] . "'
(" . $enddate->format("Y-m-d H:i:s") . $dtz . ")";
}
}
if (isset($_GET['mode'])) {
$mode = $_GET['mode'];
}
echo "";
if ($startblurb != "") {
echo "
Time period " . $startblurb . $endblurb . " is
";
} else {
echo "
Time period from
" . $startdate->format("Y-m-d H:i:s") . $dtz . " to
" . $enddate->format("Y-m-d H:i:s") . $dtz . " is
";
}
$decmonths = str_replace("+","",$diff->format('%R%y')) * 12.0;
$decmonths = $decmonths + (str_replace("+","",$diff->format('%R%m')));
$decdays = str_replace("+","",$diff->format('%R%a'));
$decdays += ($diff->h / 24.0) + ($diff->i / (24.0 * 60)) + ($diff->s / (24.0 * 60.0 * 60.0));
if ($enddate < $startdate && strpos($decmonths, "-") === false) {
$decmonths = "-" . $decmonths;
$decdays = "-" . $decdays;
}
$secondis = str_replace("+-", "-", "+" . ($decdays * 60.0 * 60.0 * 24.0) . " seconds");
$minuteis = str_replace("+-", "-", "+" . ($decdays * 24.0 * 60.0) . " minutes");
$houris = str_replace("+-", "-", "+" . ($decdays * 24.0) . " hours");
$dayis = str_replace("+-", "-", "+" . ($decdays * 1.0) . " days");
$monthis = str_replace("+-", "-", "+" . $decmonths . " months, " . $diff->d . " days, " . $diff->h . " hours, " . $diff->i . " minutes, " . $diff->s . " seconds");
$yearis = $diff->format('%R%y years, %m months, %d days, %h hours, %i minutes, %s seconds');
if (str_replace("f", "", $mode) == "") {
echo $yearis;
} else if (strpos($mode, "s") !== false) {
echo $secondis;
} else if (strpos($mode, "m") !== false) {
echo $minuteis;
} else if (strpos($mode, "h") !== false) {
echo $houris;
} else if (strpos($mode, "D") !== false) {
echo $dayis;
} else if (strpos($mode, "M") !== false) {
echo $monthis;
} else if (strpos($mode, "Y") !== false) {
echo $yearis;
}
echo "
";
echo "";
?>