我有一个经典的HTML日期输入:<input type="date" name="dto" id="date_timepicker_end">
现在我需要将此格式更改为 dd/mm/yyyy,并且我知道我不能在html中更改此格式。
当我添加jQuery datepicker时,只会得到一个空白的输入表单,您可以在其中键入任何想要的数字:
我需要输入就像HTML输入一样,用户点击输入,然后可以根据他点击的内容更改值。我不希望他能够写任何随机数。
还要注意的是,这些都是wordpress主题中的自定义代码,所以我有jquery和我自定义的javascript和css,我不能添加像moment.js之类的库...
这个问题的最佳解决方案是什么?我知道这个问题已经问了很多次了,但是没有一个方法对我有效,因为我需要输入域像一个普通的HTML输入日期域,而不是一个空输入,如果是mm/dd/yyyy**,则用**dd/mm/yyyy代替。
jsfiddle:https://jsfiddle.net/t4zrrvgL/
6条答案
按热度按时间qcuzuvrc1#
正如您已经知道的,您不能更改
input type="date"
中的值格式。input type="date"
采用本地化显示格式,但其值的格式如下:"年-月-日"
(Doc:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date)
与其尝试修改或使用
datepicker
的input
上的模式,我尝试使用常规的
input type="date"
来与datepicker
一起工作。datepicker
有一个dateFormat
选项。"yy-mm-dd"似乎与
input type="date"
要求的格式匹配。使用它,我以一种简单的方式得到了本地化的
datepicker
:希望有帮助。
vsdwdz232#
在你的html标签中添加只读属性。这是限制用户输入。
当您使用jQuery datepicker时,它提供了一个选项来指定您想要的日期格式。
希望这有帮助!!
zte4gxcn3#
您可以将日期标记更改为:
这将不允许用户输入超过4个字符的年份字段。而且,这并不真正重要,他们输入虽然,你总是可以执行客户端-服务器端验证。
iqjalb3h4#
我已经想出了一个方法,使用文本框来模拟日期输入,并做任何格式,你想要的,这里是代码
1-请注意此方法只适用于支持日期类型的浏览器。
2-JS代码中的第一个函数是用于不支持日期类型的浏览器,并将外观设置为正常的文本输入。
3-如果你想在你的页面中使用这个代码来输入多个日期,请在函数调用和输入本身中将文本输入的ID“xTime”更改为其他的东西,当然也要使用你想要的表单提交的输入名称。
4-在第二个功能上,您可以使用任何格式代替日+”/“+月+”/“+年,例如年+”/“+月+”/“+日,并在文本输入中使用占位符或值,如yyyy / mm / dd,以便用户在页面加载时使用。
8ftvxx2r5#
我创建了一个返回类型为have的函数,并传递了日期值以获得所需的日期格式
3htmauhk6#
看起来我有点晚了,但是我最近也遇到了类似的问题。在我的例子中,我得到的日期是yyyy-mm-dd格式,而我希望它是dd/mm/yyyy格式。所以,我使用了JS数组方法split。然后在一个新变量中,我得到了我需要的格式。
注意,我不知道如何准确地添加代码片段,因为这是我第一次回答问题。这就是为什么我编写了一个JS代码片段,在其中我取了一个假设的日期。同时,我们可以使用ReactJS中的States * 或vanilla JS中的document.getElementById()**来获取真实的的日期值。但函数将保持原样。
现在使用这个函数,我们可以创建任何我们想要的格式。