我正在开发一个应用程序,其中日期作为yyyy-mm-dd传递,但以mm-dd-yyyy(美国客户端)显示给客户端。
我正在使用jQuery日期选择器来选择报告中的日期和日期,并希望将日期显示给客户端为mm-dd-yyyy,但是在提交表单时,请提交为yyyy-mm-dd。
是否可以在textinput文本框中显示一个值,并在不需要挂钩到onSubmit的情况下提交另一个值?
我想出了以下替代方案:
隐藏from和to字段的文本输入,创建虚拟字段并使用以下jQuery日期选择器函数:altField和altFormat以首选方式向客户端显示值,并仅处理提交的值通过alt函数设置。
进行onSubmit javascript调用,将日期从mm-dd-yyyy更改为dd-mm-yyyy,并更改value =“将日期更改为客户端的首选格式。
重写应用程序以处理mm-dd-yyyy中的所有日期,并希望客户永远不会有希望以特定格式提供日期的非美国客户。
将所有日期更改为dd-Mon-YYYY,例如2010年5月26日,我们所有客户的客户都保证只有英文版。
答案 0 :(得分:3)
编辑:认为你想要使用一个额外的字段,如何使用相同的字段?
使用dateFormat格式化您希望可见的日期,使用$ .datepicker.formatDate()以您希望的方式发送它。更具体地说,在表单提交上使用它来重新格式化任何日期选择器。
$('form').submit(function() {
$(this).find('input.yourDatePickerClass').each( function() {
$dp = $(this);
$dp.val( $.datepicker.formatDate( 'yy-mm-dd', $dp.datepicker('getDate')) );
});
});
旧答案:
查看datepicker中的altFormat选项。它允许您显示与您正在使用的日期格式不同的日期格式。
e.g。
$( ".selector" ).datepicker({ altFormat: 'mm-dd-yy' });
答案 1 :(得分:1)
在将日期传递给数据库之前,您应始终清理并格式化日期。这不是应该在客户端处理的东西。一个简单的date("Y-m-d", strtotime($date))
就足够了。
答案 2 :(得分:0)
我这样做的方法是在显示之前和在我的PHP代码中提交之后进行翻译。我从MySQL数据库获取日期为'YYYY-MM-DD'格式的日期,但是在表格中用'MM / DD / YYYY'格式的jQuery UI日期选择器显示它们。