Pergunta

Parece que não posso usar o objeto JavaScript Data, pois ele é indicador de inércia para as datas dos EUA quando você inicializar com um datestring. Não há como passar qualquer informação cultural para o objeto de data

Ou seja, não importa quais sejam as configurações de localidade dos clientes

var d = new Date ("08/10/2009") sempre criará um objeto de data que representa o dia 10 de agosto de 2009, em vez do dia 8 de outubro de 2009, se a localidade dos clientes era o Reino Unido.

Portanto, dado que meu requisito é poder adicionar/subtrair dias/meses/anos facilmente, existe uma maneira inteligente de fazer isso facilmente sem o objeto de data

Tudo o que preciso fazer é adicionar um dia a uma data (ou uma representação de string de uma data). Portanto, se meu código detectar as liquidação de localidade estão nos EUA, quando vê uma corda como "10/08/2009", ele bate em "10/09/2009", mas se tivesse detectado, estava no Reino Unido, seria Conheci uma representação de string do Reino Unido de uma data e a atingiu para "09/10/2009"

Foi útil?

Solução

Para manipulação e localização de data em JavaScript, eu sempre recomendo o Datejs biblioteca.

Esta biblioteca abstrai o uso de objetos de data, possui opções de localização muito boas, análise e formatação poderosas de data e também possui uma API fluente muito agradável.

Outras dicas

Se você conhecer Você está obtendo DD/mm formatado por entrada, você pode facilmente montar a data correta.

function britDay(D){
 D= D.match(/\d+/g);
 return new Date(+D[2], D[1]-1, +D[0]);
}

O tolocaledatestring retornará a data no formato esperado pelo usuário.

Contar com a entrada do usuário que obedece a regras de formatação específicas é otimista- e é por isso que a maioria dos sites usa entradas separadas e rotuladas ou campos selecionados para o mês, data e ano.

Você provavelmente sabe que é fácil adicionar um dia a uma data, basta adicionar 86.400 * 1000 milissegundos à data. Parece que exibir em seu local é o problema; Date.tolocalestring () não faz a coisa certa para você?

dojo.date.locale.parse poderá analisar uma corda formatada de acordo com o local de sua escolha. Possui uma tabela de dados culturais baseados em unicode.org/cldr. Ver Este artigo Para maiores informações.

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