/*********************************************************************************
- Date operations by André Cupini - andre@neobiz.com.br
- Sum or subtract day, months or years from any date
- Ex:
require_once("class_dt.php");
$dt = new DT;
$date = $dt->operations("06/01/2003", "sum", "day", "4") // Return 10/01/2003
$date = $dt->operations("06/01/2003", "sub", "day", "4") // Return 02/01/2003
$date = $dt->operations("06/01/2003", "sum", "month", "4") // Return 10/05/2003
*********************************************************************************/
class DT
{
// Função que soma ou subtrai, dias, meses ou anos de uma data qualquer
function operations($date, $operation, $where = FALSE, $quant, $return_format = FALSE)
{
// Verifica erros
$warning = "
Warning! Date Operations Fail... ";
if(!$date || !$operation) {
return "$warning invalid or inexistent arguments
";
}else{
if(!($operation == "sub" || $operation == "-" || $operation == "sum" || $operation == "+")) return "
$warning Invalid Operation...
";
else {
// Separa dia, mês e ano
list($day, $month, $year) = split("/", $date);
// Determina a operação (Soma ou Subtração)
($operation == "sub" || $operation == "-") ? $op = "-" : $op = '';
// Determina aonde será efetuada a operação (dia, mês, ano)
if($where == "day") $sum_day = $op."$quant";
if($where == "month") $sum_month = $op."$quant";
if($where == "year") $sum_year = $op."$quant";
// Gera o timestamp
$date = mktime(0, 0, 0, $month + $sum_month, $day + $sum_day, $year + $sum_year);
// Retorna o timestamp ou extended
($return_format == "timestamp" || $return_format == "ts") ? $date = $date : $date = date("d/m/Y", "$date");
// Retorna a data
return $date;
}
}
}
}
?>