odnav Posted May 26, 2014 at 11:32 AM Report #556972 Posted May 26, 2014 at 11:32 AM <?php $a = new DateTime(' 00:00:00'); $b = new DateTime(' 18:00:00'); $interval1 = $a->diff($b); //echo "interval 1: ", $interval1->format("%H:%I"), "\n"; $c = new DateTime('00:00:00'); $d = new DateTime('18:00:00'); $interval2 = $c->diff($d); //echo "interval 2: ", $interval2->format("%H:%I"), "\n"; $e = new DateTime('00:00'); $f = clone $e; $e->add($interval1); $e->add($interval2); echo " ", $f->diff($e)->format("%D %H:%I"), " \n"; ?> Boas, Num outro Post precisei de ajuda para criar um banco de horas. Mas consegui resolver o problema, o meu novo problema é que preciso de ir buscar um valor e não calcula-lo. Por exemplo: Tenho 18 horas guardados na base de dados,( calculados anteriormente com o código para calcular a difrença,que com o output guardei na base de dados) agora precisava de adicionar mais 5 horas. Usei esta opção, [/size] $interval1="18:00"; $teste=$interval1->format("%H:%I"); mas não funcionou. Alguma ajuda ???
bioshock Posted May 26, 2014 at 01:18 PM Report #556980 Posted May 26, 2014 at 01:18 PM echo date('H:i:s', strtotime("+5 hours", strtotime('18:00')));
odnav Posted May 26, 2014 at 01:33 PM Author Report #556981 Posted May 26, 2014 at 01:33 PM (edited) echo date('H:i:s', strtotime("+5 hours", strtotime('18:00'))); Tem de vir do código para calcular a diferença entre 2 datas. Eu vou transformar isto em funções,e será tudo com valores que terei de ter já apanhado da pagina principal. Ou seja, tem de funcionar com estas duas funções [ size=4] [/size] function CalculaTempo($a,$b){ $interval1 = $a->diff($b); } function AdicionaTempo($interval1,$valorBaseDados){ $e = new DateTime('00:00'); $f = clone $e; $e->add($interval1); $e->add($valorBaseDados); echo " ", $f->diff($e)->format("%D %H:%I"), " \n"; } Sei que estas duas funções não funcionam, é só um exemplo. Edited May 26, 2014 at 01:34 PM by odnav
bioshock Posted May 26, 2014 at 01:46 PM Report #556983 Posted May 26, 2014 at 01:46 PM Não retornas nenhum valor em nenhuma das funções.
odnav Posted May 26, 2014 at 02:24 PM Author Report #556985 Posted May 26, 2014 at 02:24 PM Sim eu sei, foi só mesmo um exemplo, para mostrar como vou ter de funcionar, a minha única duvida aqui, é como vou buscar um valor na BD com o formato format("%D %H:%I") e conseguir soma-lo na segunda função
bioshock Posted May 26, 2014 at 02:42 PM Report #556989 Posted May 26, 2014 at 02:42 PM Estás com dúvidas a devolver o valor da base de dados?
odnav Posted May 26, 2014 at 06:36 PM Author Report #557022 Posted May 26, 2014 at 06:36 PM Estás com dúvidas a devolver o valor da base de dados? Tendo o valor da base de dados,e soma-lo.O meu problema é meter o valor que trago da BD no formato que uso para somar.
bioshock Posted May 26, 2014 at 06:39 PM Report #557024 Posted May 26, 2014 at 06:39 PM Qual é o valor que trazes da BD?
odnav Posted May 26, 2014 at 07:48 PM Author Report #557040 Posted May 26, 2014 at 07:48 PM [/size] $interval1="18:00"; $teste=$interval1->format("%H:%I"); Apesar de o introduzir assim é isto que quero guardar na BD
bioshock Posted May 26, 2014 at 07:58 PM Report #557046 Posted May 26, 2014 at 07:58 PM (...) é como vou buscar um valor na BD com o formato format("%D %H:%I") Estás com dúvidas a devolver o valor da base de dados? (...) O meu problema é meter o valor que trago da BD no formato que uso para somar. Qual é o valor que trazes da BD? Apesar de o introduzir assim é isto que quero guardar na BD Decide-te rapaz. Sabes que isto de estar atrás de um computador a tentar adivinhar o que outra pessoa quer pela via escrita não é fácil a menos que essa pessoa escreva coerentemente. Não interessa o formato da data que estás a gravar na base de dados, podes converter com a função strtotime() como te disse. Afinal não consegues ir buscar o valor à base de dados ou consegues? No exemplo que te dei, podes colocar a data que vem da base de dados no 2º parâmetro da função. echo date('H:i:s', strtotime("+5 hours", strtotime($variavel_da_basedados)));
I-NOZex Posted May 26, 2014 at 11:01 PM Report #557063 Posted May 26, 2014 at 11:01 PM se guardares no formato timestramp nao tens problema na conversao ou ao guardar, so precisas de fazer o mask necessario para a apresentaçao... B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
odnav Posted May 27, 2014 at 09:47 AM Author Report #557078 Posted May 27, 2014 at 09:47 AM O que eu tenho é um valor na base de dados com o seguinte formato HH:MM, e agora usando a segunda função [/size] function AdicionaTempo($interval1,$valorBaseDados){ $e = new DateTime('00:00'); $f = clone $e; $e->add($interval1); $e->add($valorBaseDados); echo " ", $f->diff($e)->format("%D %H:%I"), " \n"; } quero adiciona-lo a um novo valor (que vem da primeira função) que irá substituir o valor na base de dados ficando sempre com aquele formato HH:MM.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now