un esempio usando datetime:
Codice PHP:
function calculate_days_difference($datetime_start, $datetime_to_compare) {
$diff = $datetime_start->diff($datetime_to_compare);
$diff_days = $diff->format("%a");
$diff_sign = $diff->format("%R");
switch (true) {
case $diff_days > 1:
$day_tag = "giorni";
break;
case $diff_days == 1:
$day_tag = "giorni";
break;
case $diff_days == 0 and $diff_sign == "-":
return "oggi";
break;
case $diff_days == 0 and $diff_sign == "+":
$day_tag = "giorno";
break;
default:
return "qualcosa è andato storto";
break;
}
switch ($diff_sign) {
case '-':
return "$diff_days $day_tag fa";
case '+':
$diff_days += 1;
return "tra $diff_days $day_tag";
default:
return false;
}
}
$datetimezone = new DateTimeZone("UTC");
$now = new DateTime("now", $datetimezone);
$date_to_compare = new DateTime("2017-06-17", $datetimezone);
$diff = $now->diff($date_to_compare);
echo "inizio: " . $now->format("Y-m-d H:i:s") . "\n";
echo "fine: " . $date_to_compare->format("Y-m-d H:i:s") . "\n";
echo $diff->format("%R%a giorni %h ore") . "\n";
echo calculate_days_difference($now, $date_to_compare) . "\n";
?>