提交表单之前的重新格式化日期

问题描述 投票:0回答:3

我有一个带有日期字段和日历选择器的表格。使用此功能时,请输入日期作为dd/mm/yyyy。这有效。

不过我想将日期存储为yyyymmdd。有没有办法使用JavaScript重新格式化日期?例如,我单击提交,将日期重新格式化,然后提交并将重新格式化的日期写入数据库?

也许有更好的方法?例如使用具有某种格式的正确日期格式的隐藏输入字段?

javascript jquery date form-submit
3个回答
1
投票

怎么样?

('20/02/2020').split('/').reverse().join('')

此应根据您提供的信息进行。除非您的日期选择器以其他方式或其他格式返回值。为此,您需要拦截自己的单击处理程序提交的表单并检查值。


1
投票

function submit(){
var date  = document.getElementById('datefield').value;
var e = date;
var output = e.replace(/\-/g,"");
document.getElementById('output').innerHTML = output;
}
<input id="datefield" data-date-format="YYYY MM DD" type="date">
<button onclick="submit()">format!</button>
<div id="output"></div>

-1
投票

如果将值加载为Date对象,则可以按照自己喜欢的任何方式对其进行格式化。但是,请考虑使用已经为您解决此问题的库,例如moment.js

function formatDate() {
  const value = document.getElementById("date-input").value;
  const date = new Date(value);
  
  const year = date.getFullYear() + "";
  let month = date.getMonth() + 1 + "";
  let day = date.getDate() + "";
  
  if (day.length == 1) day = "0" + day;
  if (month.length == 1) month = "0" + month;
  
  const formattedDate = year + "/" + month + "/" + day;
  
  document.getElementById("date-output").innerHTML = formattedDate;
}
<input id="date-input" type="date">
<button onclick="formatDate()">format!</button>
<div id="date-output"></div>
© www.soinside.com 2019 - 2024. All rights reserved.