我目前正在为酒店预订小部件编写代码并使用jQuery UI日期选择器。
问题是客户端正在使用的外部预订系统将日期格式处理为yyyy-mm-dd
,并且客户认为这使得在输入框中看到2012-06-19
的人感到困惑,并希望显示日期为欧洲格式dd-mm-yyyy
代替其网站。
所以基本上表单需要在选择日期时显示dd-mm-yyyy
,然后当提交按钮单击表单时,日期需要在发送值之前重新排列到yyyy-mm-dd
。
预订系统公司表示他们有很多客户已经实现了这一目标,但他们表示他们并不是100%确定如何做到这一点。
答案 0 :(得分:11)
DatePicker可以使用选项altField
和altFormat
处理此问题。
altField
:一个输入元素,使用datepicker中的选定日期进行更新。使用altFormat
选项更改此字段中日期的格式。没有备用字段,请留空。
$('#thedate').datepicker({
dateFormat: 'dd-mm-yy',
altField: '#thealtdate',
altFormat: 'yy-mm-dd'
});
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
Shown Field: <input id="thedate" type="text" /><br />
Hidden Field : <input id="thealtdate" type="text" />
答案 1 :(得分:3)
有很多方法可以解决这个问题,但这很可能是我乍看之下的方法。
为提交按钮的提交功能创建一个事件处理程序。
在该功能中,创建正确格式化的新日期:
var d = new Date($(“oldDateFormatPicker”)。val()); $( “hiddenField”)VAL(d)。 return true;
类似的东西至少语法可能有点偏,但它很接近。在我们的服务器端代码中,只需指向隐藏字段而不是日期选择器。