Skip to content

Instantly share code, notes, and snippets.

@dodopok
Created June 28, 2013 13:16
Show Gist options
  • Save dodopok/5884581 to your computer and use it in GitHub Desktop.
Save dodopok/5884581 to your computer and use it in GitHub Desktop.
Diferença entre duas datas - PHP
<?php
function diff ($inicio, $fim, $tipo){
if (!$fim || $fim < $inicio) {
return "A data final deve ser maior que a inicial.";
} elseif ($inicio < "1970-01-01") {
return "A data final deve ser maior que 01/01/1970.";
} else {
if (strlen($inicio) > 10) {
$time_inicio = mktime(substr($inicio,-8,2),substr($inicio,-5,2),substr($inicio,-2), substr($inicio,5,2), substr($inicio,8,2), substr($inicio,0,4));
} else {
$time_inicio = mktime(0,0,0, substr($inicio,5,2), substr($inicio,-2), substr($inicio,0,4));
}
if (strlen($fim) > 10) {
$time_fim = mktime(substr($fim,-8,2),substr($fim,-5,2),substr($fim,-2), substr($fim,5,2), substr($fim,8,2), substr($fim,0,4));
} else {
$time_fim = mktime(0,0,0, substr($fim,5,2), substr($fim,-2), substr($fim,0,4));
}
$diferenca = ($time_fim - $time_inicio);
switch($tipo){
case "i": return round($diferenca/60); break;
case "H": return round($diferenca/3600); break;
case "d": return round($diferenca/86400); break;
}
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment