<?php
$now = new DateTime('now');
$expire_date = date('Y-m-d H:i:s', strtotime('+3 weeks'));
$expire_on = new DateTime($expire_date);
$time_left = $now->diff($expire_on);
echo format_interval($time_left);
function format_interval($time_left) {
$format_string = "";
$weeks = (int) ($time_left->d / 7);
$days = (int) ($time_left->d - ($weeks * 7));
if ($time_left->y > 0) $format_string = "%y year(s), %m month(s), $weeks week(s), $days day(s), %h hour(s) and %i minute(s)";
elseif ($time_left->m > 0) $format_string = "%m month(s), $weeks week(s), $days day(s), %h hour(s) and %i minute(s)";
elseif ($weeks > 0) $format_string = "$weeks week(s), $days day(s), %h hour(s) and %i minute(s)";
elseif ($time_left->d > 0) $format_string = "$days day(s), %h hour(s) and %i minute(s)";
elseif ($time_left->h > 0) $format_string = "%h hour(s) and %i minute(s)";
elseif ($time_left->i > 0) $format_string = "%i minute(s)";
else $format_string = "%s second(s)";
return $time_left->format($format_string);
}
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- 2 week(s), 6 day(s), 23 hour(s) and 59 minute(s)
preferences:
115.23 ms | 406 KiB | 5 Q