private function salvar(Tarefa $tarefa) { $finalizar = $this->getParametro('acao') === 'finalizar'; // Cria um objeto de DateTime com a data do form $dataInicio = \DateTime::createFromFormat('Y-m-d\\TH:i', $this->getParametro('data')); // Clona a data inicial para calcular a data final $dataFim = clone $dataInicio; // Pega a duração $duracao = $this->getParametro('duracao'); // Quebra pelo ':' e coloca os valores em $hora e $min list($hora, $min) = explode(':', $this->getParametro('duracao')); // Converte os valores em int $hora = (int) $hora; $min = (int) $min; // Cria um objeto de DateInterval para calcular a nova data de término $intervalo = new \DateInterval("PT{$hora}H{$min}M"); // Adiciona o intervalo á data de término $dataFim->add($intervalo); // Define os campos da tarefa de acordo com o form $tarefa->setDatIniTar($dataInicio->format('Y-m-d H:i:s'))->setDatTerTar($dataFim->format('Y-m-d H:i:s'))->setTepTar($duracao)->setDesTar($this->getParametro('descricao')); // Se a ação é de finalizar a tarefa, marca ela como finalizada if ($finalizar) { $tarefa->setConTar(Tarefa::FINALIZADA); } // Salva a tarefa $tarefa->salvar(); $this->setMensagemSucesso('Tarefa ' . ($finalizar ? 'finalizada' : 'salva') . ' com sucesso!'); }