Man slinkums lasīt, labāk rakstu...
function date_difference($date_1, $date_2, $only_seconds = false) {
$date_1 = is_int($date_1) ? $date_1 : strtotime($date_1);
$date_2 = is_int($date_2) ? $date_2 : strtotime($date_2);
if ($date_1 === $date_2) {
$difference = 0;
} else if ($date_1 > $date_2) {
$difference = $date_1 - $date_2;
} else { // $date_1 < $date_2
$difference = $date_2 - $date_1;
}
if ($only_seconds === false) {
$difference = array(
'years' => ceil($difference / (60 * 60 * 24 * 365)),
'months' => ceil($difference / (60 * 60 * 24 * 30)),
'weeks' => ceil($difference / (60 * 60 * 24 * 7)),
'days' => ceil($difference / (60 * 60 * 24)),
'hours' => ceil($difference / (60 * 60)),
'minutes' => ceil($difference / 60),
'seconds' => $difference
);
}
return $difference;
}
var_dump(date_difference(1425374671, 1437294303)); // Basic example.
echo '<br />';
var_dump(date_difference(1437294303, 1425374671)); // Params just changed places!
echo '<br />';
var_dump(date_difference(1324343221, 1324343221)); // Equal dates.
echo '<br />';
var_dump(date_difference('2011-05-30 14:47:19', '2011-05-30 15:25:46')) ; // Time as string. This is format from database.
echo '<br />';
var_dump(date_difference('2012-01-06 12:02:53', 1532654762)); // Date #1 as string, date #2 as timestamp.
echo '<br />';
var_dump(date_difference(1532654762, '2012-01-06 12:02:53', true)); // Only seconds. Like short-hand.
Apakšā ir piemēri. Es, ja godīgi, aizmirsu vispār, ko tev vajadzēja. Uztaisīju šito... ir vēls un tā. Bet kaut ko jau atgriež!