jQuery日期选择器输入日期格式

时间:2012-06-19 16:04:52

标签: jquery jquery-ui datepicker

我目前正在为酒店预订小部件编写代码并使用jQuery UI日期选择器。

问题是客户端正在使用的外部预订系统将日期格式处理为yyyy-mm-dd,并且客户认为这使得在输入框中看到2012-06-19的人感到困惑,并希望显示日期为欧洲格式dd-mm-yyyy代替其网站。

所以基本上表单需要在选择日期时显示dd-mm-yyyy,然后当提交按钮单击表单时,日期需要在发送值之前重新排列到yyyy-mm-dd

预订系统公司表示他们有很多客户已经实现了这一目标,但他们表示他们并不是100%确定如何做到这一点。

2 个答案:

答案 0 :(得分:11)

DatePicker可以使用选项altFieldaltFormat处理此问题。

  

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)

有很多方法可以解决这个问题,但这很可能是我乍看之下的方法。

  1. 添加隐藏字段以存储新的日期值。
  2. 为提交按钮的提交功能创建一个事件处理程序。

  3. 在该功能中,创建正确格式化的新日期:

    var d = new Date($(“oldDateFormatPicker”)。val()); $( “hiddenField”)VAL(d)。 return true;

  4. 类似的东西至少语法可能有点偏,但它很接近。在我们的服务器端代码中,只需指向隐藏字段而不是日期选择器。