我有一个带有日期字段和日历选择器的表格。使用此功能时,请输入日期作为dd/mm/yyyy
。这有效。
不过我想将日期存储为yyyymmdd
。有没有办法使用JavaScript重新格式化日期?例如,我单击提交,将日期重新格式化,然后提交并将重新格式化的日期写入数据库?
也许有更好的方法?例如使用具有某种格式的正确日期格式的隐藏输入字段?
怎么样?
('20/02/2020').split('/').reverse().join('')
此应根据您提供的信息进行。除非您的日期选择器以其他方式或其他格式返回值。为此,您需要拦截自己的单击处理程序提交的表单并检查值。
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>
如果将值加载为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>