Pergunta

Existe uma maneira de determinar o fuso horário para um agente de usuário sem javasript?

Normalmente, eu iria executar esse trecho de javascript:

<script type="text/javascript" language="JavaScript">
 var offset = new Date();
 document.write('<input type="hidden" id="clientTzOffset" 
 name="clientTzOffset" value="' + offset.getTimezoneOffset() + '"/>');
</script>

No entanto, para um monte de móveis e clientes, JS é ou não foram inexistentes ou desligado. Existe algo inteligente que eu posso fazer ou estou reduzido a "me onde você está eo que timzeone você está em contar?"

Foi útil?

Solução

Talvez com uma linguagem do lado do servidor que você poderia fazer um IP lookup, e então determinar de seu país o fuso horário eles poderiam estar em.

Eu imagino que isso poderia ser problemático, no entanto.

Se indo por este caminho, esta questão (e respostas) podem ser de ajuda.

Obtendo a localização de um endereço IP

Outras dicas

Use ambos. Tenha conjunto javascript o valor padrão de uma lista ou texto do campo. A percentagem de pessoas sem javascript é tão pequena a carga é pequena.

Eu ia dizer "usar a data do pedido: header", mas que é um cabeçalho de resposta única que parece

.

pensei em outra solução, mas é um pouco complexo. Defina algumas solicitações falsa cabeça com um máximo de idade: cabeçalho 1 resposta para coagir o navegador para re-busca-los. Você deve então receber um If-Modified-Since a partir de qualquer navegador moderno como assim:

If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT

Apenas tome cuidado para não enviar qualquer cabeçalho Last-Modified com a primeira resposta, porque

Para obter melhores resultados ao enviar um Se- Modified-Since campo de cabeçalho para a validação de cache, os clientes estão aconselhados a usar a seqüência de data exata recebido em um de último anterior Modificada campo de cabeçalho sempre que possível.

Observe o "sempre que possível" disclaimer. Este, e outras partes da descrição do cabeçalho implica que o cliente irá utilizar o seu próprio relógio quando ele não sabe nada dos servidores.

Com a combinação certa de cabeçalhos isso poderia realmente funcionar muito bem.

EDIT: Tentei alguns testes com FF mas não conseguiu encontrar uma combinação válida de cabeçalhos para disparar um If-Modified-Since no tempo cliente. FF somente envia o cabeçalho se ele tem uma última modificação cabeçalho anteriormente e, em seguida, ele apenas reflete o valor de volta (mesmo se não é uma data válida).

Eu vi um site onde, em vez de perguntar o que o fuso horário do usuário estava nele simplesmente perguntou "escolher a hora certa" e mostrou-lhes uma lista de vezes. É uma diferença sutil de "o que fuso horário você está em" mas muito mais fácil de entender. Infelizmente eu não posso encontrar o site mais

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top