Php JqueryUI、Datepicker和Codeigniter:如何在加载时更改格式?
简短版本: 在输入字段中,我以“yy-mm-dd”格式显示日期。我想通过jqueryUI获取它,并将该日期格式化为'dd.MM-yy',然后将其放回输入字段 我遇到的问题是,当我从输入字段中获取值时,它不知道它是哪种格式 长版本: 在我的数据库中,我以典型的格式“yy-mm-dd”保存日期。但是,在使用日期选择器时,出于显示目的,我使用“dd.MM-yy”,而在隐藏字段中,我保存“yy-MM-dd” 当我加载要编辑其日期的条目时,显示的字段是“yy-mm-dd”,我希望它也是“dd.mm-yy” 当页面加载时,我想Php JqueryUI、Datepicker和Codeigniter:如何在加载时更改格式?,php,jquery-ui,codeigniter,datepicker,Php,Jquery Ui,Codeigniter,Datepicker,简短版本: 在输入字段中,我以“yy-mm-dd”格式显示日期。我想通过jqueryUI获取它,并将该日期格式化为'dd.MM-yy',然后将其放回输入字段 我遇到的问题是,当我从输入字段中获取值时,它不知道它是哪种格式 长版本: 在我的数据库中,我以典型的格式“yy-mm-dd”保存日期。但是,在使用日期选择器时,出于显示目的,我使用“dd.MM-yy”,而在隐藏字段中,我保存“yy-MM-dd” 当我加载要编辑其日期的条目时,显示的字段是“yy-mm-dd”,我希望它也是“dd.mm-yy”
$(document).ready(function(){})代码>,即获取#日期选择器#日期中的日期,将其转换为“dd.MM-yy”格式,然后将其放回#日期选择器#日期字段
对于额外的奖励,我想首先看看它是什么格式,如果是“yy-mm-dd”,然后转换它(因为由于codeigniter中的验证,字段将重新填充正确的格式,因为它们将采用正确的格式)
那么有点:
$(document).ready(function() {
if( the_format_of_the_date_in_#datepicker_date == 'yy-mm-dd')
//convert it to 'dd. MM yy' and set it to #datepicker_date
});
我希望我没有太困惑。我知道这很简单,但我只是无法让它工作,我感谢任何帮助
编辑:
我通过php和codeigniter form_helper和validator set_value()方法加载数据
您可以尝试(从我的工作项目的CI helper函数)
您可以将此函数保存在帮助文件中,并在使用前加载它。最终找到了答案
正如您所知,我使用两个字段,一个隐藏,一个用于表示,这样在数据库中就保存了公共字段(“yy-mm-dd”字段)。我一直试图做的是在从数据库加载日期进行编辑时从一种格式转换为另一种格式
因此,解决方案不是我试图转换它,而是简单地使用datepickers'setDate'函数,让它处理它
为此,我在#alt#u date#字段中添加了日期选择器,并将altfield和altformat设置为要显示的字段
$("#alt_date_field").datepicker({
dateFormat: "yy-mm-dd",
altField: "#datepicker_date",
altFormat: "dd. MM yy"
});
然后当页面加载时:
$(document).ready(function() {
$('#ult_date_field').datepicker('setDate',$('#alt_date_field').val());
});
我在这里做的是获取隐藏输入字段的值,并使用setDate方法,以便它以正确的格式填充#datepicker_date 如何使用php
加载日期?是否从隐藏字段加载日期?@sheikheera我编辑了这个问题。我使用php从控制器加载,填充隐藏字段和显示字段。感谢您的输入。但这里的问题不仅仅是在d m y改变订单。格式dd.MM-yy将显示类似于'03的内容。2012年12月”。由于在地区中是月的翻译,所以我必须正确使用jqueryui函数。
$date_loaded_via_controller="2012-12-15"; // suppose you have this date
$date_loaded_via_controller=date_to_dmy($date_loaded_via_controller);
function date_to_dmy($dt)
{
$date=explode(' ', $dt);
$deli=strpos($dt, '/') ? '/':'-';
$date=explode($deli, $date[0]);
$newdt= $date[2].".".$date[1]." ".$date[0]; // for 15.12 2012
return $newdt;
}
echo form_input($data, set_value('date', $date_loaded_via_controller));
$("#alt_date_field").datepicker({
dateFormat: "yy-mm-dd",
altField: "#datepicker_date",
altFormat: "dd. MM yy"
});
$(document).ready(function() {
$('#ult_date_field').datepicker('setDate',$('#alt_date_field').val());
});