passarito Posted May 28, 2025 at 03:41 PM Report #634879 Posted May 28, 2025 at 03:41 PM Boas a todos. No meu HTML estou a recolher uma data da seguinte forma: Data: <input type="date" name="boxdata"> Aqui não tenho qualquer problema, até porque a data que pede está em formato português: dd/mm/aaaa Mas quando quero lá colocar um certa data se estiver em formato dd/mm/aaaa dá erro porque só aceita data em aaaa/mm/dd Data: <input type="date" name="boxdata" value="<%=session("data")%>"> Isto obriga-me a mudar constantemente o formato da data. Alguém sabe como ultrapassar este problema? Será alguma configuração no IIS? Obrigado
JakeBass Posted May 29, 2025 at 07:31 AM Report #634883 Posted May 29, 2025 at 07:31 AM O formato do input date nativo depende da língua do browser. No valor vai estar em formato YYYY-MM-DD mas no input vai ser apresentado de acordo com a língua do browser. O melhor é utilizar uma biblioteca de datepicker que te permita definir um formato igual para todos os browsers. 1 Report
Rui Carlos Posted May 29, 2025 at 10:19 AM Report #634885 Posted May 29, 2025 at 10:19 AM Por norma, o formato YYYY-MM-DD costuma ser conveniente para as linguagens de programação no servidor (pelo menos nas que usei). Por isso, esperaria que não tivesses problemas a usar o input. O maior inconveniente que vejo é depois garantir que todas as datas são apresentadas de forma consistente (com tags time e algum JavaScript também se deve resolver o problema, mas é pena que o HTML não suporte isto nativamente). 1 Report Rui Carlos Gonçalves
passarito Posted May 30, 2025 at 11:17 AM Author Report #634893 Posted May 30, 2025 at 11:17 AM Obrigado pelas respostas / sugestões. Vou ter de fazer uns testes e ver se é viável caso contrário continuo a usar o input type="text" como tenho usado até aqui e apenas necessito de converter para YYYY-MM-DD quando quero colocar na base de dados. desenvolvi uma função (data_para_post) que está na minha livraria principal. Com o type="date" , quando passo o valor para dentro do input terei que transformar a data para YYYY-MM-DD e quando vou buscar o valor da data ao input terei de voltar a colocar em DD-MM-YYYY. É muita conversão. Será que há algum método de trabalhar menos tendencioso a arranjar problemas?
Rui Carlos Posted May 30, 2025 at 05:22 PM Report #634898 Posted May 30, 2025 at 05:22 PM A minha recomendação é para armazenares datas em tipos de dados destinados a esse propósito (e.g. date em Postgres, LocalDate em Java, datetime.date em Python). Estes tipos de dados por norma também preferem o formato YYYY-MM-DD, o que é consistente com Javascript. Nesta abordagem, a conversão para outro formato seria feita apenas na apresentação/UI. Ainda assim, o input nativo pode não ser apropriado, pois à partida queres que a apresentação de datas faça match do locale da página (e.g. se tens um site em inglês, as datas devem ser apresentadas em inglês), enquanto que o formulário nativo irá ser ajustado ao locale do browser. Por isso, continua a haver algum racional para usar um datepicker personalizável, como o @JakeBass sugeriu. Mas mesmo neste caso, recomendo-te que armazenes as data em tipos próprios e no formato YYYY-MM-DD. 1 Report Rui Carlos Gonçalves
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now