
[resolvido] Warning: Mktime()
#1
Posted 12/01/2008, 22:18
Warning: mktime() expects parameter 5 to be long, string given in /home/enquete/top.php on line 58
LINHA 58:
$starts = mktime (0, 0, 0, $months, $days, $years);
#2
Posted 12/01/2008, 22:31
[]s

#3
Posted 12/01/2008, 22:39
pq estava perfeita antes disso...
#4
Posted 13/01/2008, 00:37
independente de como ou quando comecou, o erro eh que o quinto parametro passado esta definido como string quando deveria ser inteiro.
tente usar a fucnao settype antes
settype($days, "integer"); $starts = mktime (0, 0, 0, $months, $days, $years);agora quanto ao porque desse problema so comecar agora, sugiro que faca o caminho inverso e veja de onde vem a variavel $days. se possivel poste o codigo aqui.
vlw

Edição feita por: § Kenshin §, 13/01/2008, 00:38.
"Living to learn... learning to live!"
Useful links: Rules | Search
#5
Posted 13/01/2008, 01:00
Na verdade não é bem isso. O valor das variáveis independem do tipo, isto é, o próprio PHP faz a conversão, na medida do possível. O que está acontecendo é que a variável não está contendo um valor numérico.basicamente eh como o p.r. falou.
independente de como ou quando comecou, o erro eh que o quinto parametro passado esta definido como string quando deveria ser inteiro.
tente usar a fucnao settype antes
Código reproduzível:
<?php $days = 'foo'; // oops $months = '1'; $years = '2008'; $starts = mktime (0, 0, 0, $months, $days, $years); ?>[]s

#6
Posted 13/01/2008, 01:11
Cuidado ao passar no dia e mês um valor 08 (por exemplo obtido pelo date("d")) pois o php pode interpretar como octal, binario, sei lá... só sei que o erro acontece com 08 (tem que ser só 8 sem zero pra funcionar aqui) dá um resultado bem estranho. Então o ideal é setar mesmo a variavel como inteiro, "forçar" mesmo sabendo que o php transforma para inteiro...

#7
Posted 13/01/2008, 01:24
intendi, mas imaginei que uma (possivel) causa para a variavel ser passada como string seria por exemplo atraves de querystring (eh so um exemplo) e que um "7" por exemplo, como string daria esse tipo de erro, suposicoes nao testadas apenasNa verdade não é bem isso. O valor das variáveis independem do tipo, isto é, o próprio PHP faz a conversão, na medida do possível. O que está acontecendo é que a variável não está contendo um valor numérico.basicamente eh como o p.r. falou.
independente de como ou quando comecou, o erro eh que o quinto parametro passado esta definido como string quando deveria ser inteiro.
tente usar a fucnao settype antes
Código reproduzível:<?php $days = 'foo'; // oops $months = '1'; $years = '2008'; $starts = mktime (0, 0, 0, $months, $days, $years); ?>[]’s

vlw

"Living to learn... learning to live!"
Useful links: Rules | Search
#8
Posted 13/01/2008, 10:11
$starts = date("Y-m-d", strtotime($years . "-" . $months . "-" . $days . "00:00:00"));Funcionaria como um mktime(), só que de uma outra forma

[]'s
#9
Posted 13/01/2008, 12:34
**RESOLVIDO**
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)