Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新格式化提交表格之前的日期_Javascript_Jquery_Date_Form Submit - Fatal编程技术网

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

Javascript 重新格式化提交表格之前的日期,javascript,jquery,date,form-submit,Javascript,Jquery,Date,Form Submit,我有一个带有日期字段和日历选择器的表单。当我使用它时,我让它输入日期为dd/mm/yyyy。这很有效 但是我想将日期存储为yyyymmdd。有没有办法使用javascript重新格式化日期?例如,我单击“提交”,它会重新格式化日期,然后进行提交并将重新格式化的日期写入数据库 也许有更好的方法?e、 g.以某种方式使用具有正确格式的日期版本的隐藏输入字段?如果将值作为日期对象加载,则可以按任何方式格式化它。但是,请考虑使用一个已经解决了这个问题的库,比如。 函数formatDate(){ 常量值

我有一个带有日期字段和日历选择器的表单。当我使用它时,我让它输入日期为
dd/mm/yyyy
。这很有效

但是我想将日期存储为
yyyymmdd
。有没有办法使用javascript重新格式化日期?例如,我单击“提交”,它会重新格式化日期,然后进行提交并将重新格式化的日期写入数据库


也许有更好的方法?e、 g.以某种方式使用具有正确格式的日期版本的隐藏输入字段?

如果将值作为
日期对象加载,则可以按任何方式格式化它。但是,请考虑使用一个已经解决了这个问题的库,比如

函数formatDate(){
常量值=document.getElementById(“日期输入”).value;
const date=新日期(值);
const year=date.getFullYear()+“”;
让月=日期。getMonth()+1+“”;
let day=date.getDate()+“”;
如果(day.length==1)day=“0”+天;
如果(月长==1)月=0“+月;
const formattedDate=年+“/”+月+“/”+日;
document.getElementById(“日期输出”).innerHTML=formattedDate;
}

总体安排
这个怎么样

('20/02/2020').split('/').reverse().join('')
根据您提供的信息,这应该有效。除非日期选择器以其他形式或其他格式返回值。为此,您需要通过自己的单击处理程序截取表单提交并检查值。

函数提交(){
var date=document.getElementById('datefield')。值;
var e=日期;
var输出=e.replace(/\-/g,“”);
document.getElementById('output')。innerHTML=output;
}

总体安排

不要将日期存储为字符串。将其存储为日期数据类型(最好使用UTC)。这样,格式在存储时并不重要,只在显示值时才重要。除了上面提到的(您应该在数据库中存储为date),创建onSubmit函数,然后更改日期值并创建api请求,然后在表单中调用onSubmit函数。哪个jQuery用于日期纠察日历?因为您可以使用JavaScript轻松更改日期格式。这是否回答了您的问题@罗里姆克罗森说得很好。我在回答问题时错过了。为什么投否决票?这个解决方案有效。我试过了。如果你不想要的话,就去掉宣传!我有呕吐兄弟,因为我在工作,我也检查过。我们有很多方法可以做到。干得好..非常感谢@RaviPatidar!他已将输入发布为dd/mm/yyyy。他很可能需要在单击“提交”时检查实际收集的内容。@RutwickGangurde可能是因为这个答案到目前为止太简单了,并且没有使用日期库。@RutwickGangurde抱歉,应该使用正确的讽刺字体……你完全正确,简单就是美丽的。:-)“2020年2月23日”返回“NaN/NaN/NaN”。为什么要将一个字符串转换成不同的类型,只是为了将它转换回一个具有相同值的字符串?;-)什么意思
2020年2月23日
返回
NaN/NaN/NaN
?用图像演示“工作”代码不是很好。;-)并非所有浏览器都支持输入类型date,并且您的代码没有生成OP所需的格式。这似乎工作得很好,但每次我打开表单时,输入框总是显示dd---yyyy。添加记录没问题,但如果我正在更新一条记录,我希望相关日期就在那里。可能吗?非常感谢。