Spiderman
26-03-2007, 15:21
Boas.
Na pagina que estou a criar, ha um formulario para preencher. Eu queria que ao carregar no submit, ele registasse numa variavel ou hidefield a hora e data do sistema naquela altura.
Se podesse ser a hora GMT era melhor, para nao haver descrepância nos valores.
:007:
Usando PHP:
<?php
#Definição de variáveis de data
$dia=date(d);
$mes=date(n);
$ano=date(Y);
#Definição de variáveis de hora
$hora=date(H);
$minutos=date(i);
#Imprime data
echo"$dia/$mes/$ano ";
#Imprime hora
echo"$hora:$minutos";
#Simplificando o script:
$data = date("m/d/y");
$hora = date("H:i:s");
echo"$data<br>";
echo"$hora";
?>
Espero que tenhas percebido!!:)
Outra implementação possível seria usar o javascript, visto que dizes que pretendes preencher um hidden field aquando do submit do formulário; poderia ser +/- algo deste tipo:
<html>
<head>
<script type="text/javascript">
function doOnSubmit(form){
var currentTime = new Date();
form.timestamp.value=currentTime.toLocaleString();
return true;
}
</script>
</head>
<body>
<form name='MyForm' method='post' onsubmit='return doOnSubmit(this)' >
<input type='text' name='timestamp' value=''>
...
...
...
<input type="submit" value='Submit'>
</form>
</body>
</html>
Ao ser pressionado o submit irá ser chamada a função doOnSubmit que basicamente irá preencher o hidden field "timestamp"; para a formatação da hora dá uma vista de olhos neste link (http://www.w3schools.com/jsref/jsref_obj_date.asp).
A abordagem do fil79 é na minha opinião a mais correcta, ou seja deves fazer esse tratamento a nível do servidor, visto que por ex. se o cliente tiver o javascript desligado não vai ser registada a hora; partindo também do principio que estás a usar php, podes ver também aqui alguns exemplos de como formatar a data/hora (http://pt.php.net/date) no php
Não dizes que linguagem estás a usar.
Se por exemplo for JSP, podes fazer em Java:
Date data = new Date(); //ficas com a hora actual em data
O Java tem uma API para formatação de datas para usar como der mais jeito.
Sim, do lado do cliente não é boa politica, basta o browser não ter o suporte para javascript activo.