Jump to content
acao

erro em data

Recommended Posts

acao

boas

tenho o seguinte erro:

Notice: A non well formed numeric value encountered in

o erro é na linha que coloco.

$novoRegisto->DataUsuario=date("Y-m-d H:i:s",mktime(date("H").$novofusohorario));

qualquer ajuda agradeço.

cumps

acao

Share this post


Link to post
Share on other sites
HappyHippyHippo

pela mensagem, o erro é que o valor não é um número válido.

ora bem, o teu código:

date("Y-m-d H:i:s",                                   // isto que um número no segundo argument, por isso é a melhor aposta de onde vem o erro
                  mktime(                            // isto retorna um número, mas se os argumentos forem correctos.
                         date("H").                  // ok, isto é uma função que parece bem declarada ...
                                   $novofusohorario  // isto não faço ideia do que tem, mas posso presupor ... algo como "GMT" talvez
                        )
   )

agora vê bem qual é o argumento da função mktime se a função date("H") retornar, por exemplo, "4" : "4GMT"

bem, parece que falta ai um espaço ...


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
acao

boas

pois deve ser aí.

se colocar assim:

$novofusohorario = fusohorario();
echo '   novofusohorario:  '.$novofusohorario;
$timestamp = mktime(date("H").$novofusohorario); //linha 5
echo '   timestamp: '.$timestamp;
$novodate= date("Y-m-d H:i:s",$timestamp);
echo '    novodate: '.$novodate;

e imprime isto:

novofusohorario: +01:00

Notice: A non well formed numeric value encountered in C:\xampp\htdoc on line 5

timestamp: 1378336666

novodate: 2013-09-05 00:17:46

que sugeres?

cumps

acao

Share this post


Link to post
Share on other sites
HappyHippyHippo
$novofs = "+01:00";

$ts1 = time();
$ts2 = strtotime($novofs);

echo "ts1 : $ts1 = ".date("Y-m-d H:i:s", $ts1)."<br />";
echo "ts2 : $ts2 = ".date("Y-m-d H:i:s", $ts2)."<br />";


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
acao

$novofs = "+01:00";

$ts1 = time();
$ts2 = strtotime($novofs);

echo "ts1 : $ts1 = ".date("Y-m-d H:i:s", $ts1)."<br />";
echo "ts2 : $ts2 = ".date("Y-m-d H:i:s", $ts2)."<br />";

deu certo, erro corrigido.

desculpe demorar a responder, mas estive a analisar a maneira de guardar a data e talvez não seja a melhor forma.

estou a guardar a data retornada pelo codigo anterior colocado, isto é guardo a datahora local.

mas acontece que eu tenho que ter a certeza que data estou a guardar, que assim não sei devido aos fusos horarios.

estou tentado a alterar para:

guardar na basedados a hora gmt 0 e noutro campo o fusohorario para depois converter.

$fusomadrid = fusohorario1('Europe/Madrid');
echo 'fuso madrid = '.$fusomadrid."<br />";
$strtotimemadrid =  strtotime(fusohorario1('Europe/Madrid'));
echo 'strtotime madrid = '.$strtotimemadrid."<br />";
$datemadrid = date("Y-m-d H:i:s",$strtotimemadrid);
echo 'data madrid  '.$datemadrid."<br />";
$somar2horas = date("Y-m-d H:i:s",  time($datemadrid)+ 7200);
echo 'somar 2 horas: '.$somar2horas."<br />";

imprime:

fuso madrid = +02:00

strtotime madrid = 1378472624

data madrid 2013-09-06 15:03:44

somar 2 horas: 2013-09-06 17:03:44

conhece alguma maneira de somar o fuso horario a uma datahora, diferente do postado,

isto é : sem ter que fazer as contas e depois apresentar o resultado em segundos, utilizar alguma função do php.

cumps

acao

Edited by acao

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.