private function changeDateFieldsFormatForSave(&$dbArray) { if (is_array($this->date_fields)) { foreach ($dbArray as $key => $value) { if (in_array($key, $this->date_fields)) { $dbArray[$key] = dataParaGravacao($value); } } } }
/** * Compara duas datas, verificando se uma é maior ou igual que a outra * Usa a classe DateTime para isso * php >= 5.2.2 é possível comparar duas instâncias de datetime com operadores de comparação * * @param $str data base no formato de exibição dd/mm/yyyy * @param $compareTo data no formato de exibição dd/mm/yyyy */ public function date_greater_equals_than($str, $compareTo) { $valid = true; if (isset($_POST[$compareTo])) { $valueToCompare = $_POST[$compareTo]; if (dataValida($str) && dataValida($valueToCompare)) { $data1 = new DateTime(dataParaGravacao($str)); $data2 = new DateTime(dataParaGravacao($valueToCompare)); $valid = $data1 >= $data2; } } return $valid; }
function dataCalcularProximoVencimento($diaVencimento, $idPeriodicidade) { $ci =& get_instance(); $ci->load->model('periodicidade_model'); $diaVencimento = dataParaGravacao($diaVencimento); $diasPeriodicidade = $ci->periodicidade_model->get_by_id($idPeriodicidade); if ($diasPeriodicidade->numeroDias < 30) { $proximoVencimento = dataAddDias($diasPeriodicidade->numeroDias, $diaVencimento); } else { $mesesPeriodicidade = $diasPeriodicidade->numeroDias / 30; $proximoVencimento = new DateTime($diaVencimento); $proximoVencimento->setDate($proximoVencimento->format("Y"), $proximoVencimento->format("m"), dataParaExibicao($diaVencimento, 'd')); if ($proximoVencimento) { $proximoVencimento = dataAddMes($mesesPeriodicidade, $proximoVencimento->format("Y-m-d")); } } return $proximoVencimento; }