0

精简版:

在输入字段中,我有一个以“yy-mm-dd”格式显示的日期。我想通过 jqueryUI 获取它并将该日期格式化为 'dd. MM yy' 并将其放回输入字段。

我遇到的问题是,当我从该输入字段中获取值时,它不知道它是哪种格式。

长版:

在我的数据库中,我以典型的格式“yy-mm-dd”保存日期。但是,在使用日期选择器时,出于显示目的,我使用“dd. MM yy”,而在隐藏字段中,我保存“yy-mm-dd”。

当我加载条目以在显示的字段中编辑其日期时,它是“yy-mm-dd”,我也希望它是“dd. MM yy”。

$(function() {
    // in my rjquery.ui.datepicker-.... is the "dd. MM yy" set as dateFormat
    $.datepicker.setDefaults($.datepicker.regional['....']); 

    $( "#datepicker_date" ).datepicker({
        changeMonth: true,
        changeYear: true,
        altField: "#alt_date_field",
        altFormat: "yy-mm-dd" 
    });





});

我无法做的是当页面加载时,我猜$(document).ready(function() {});是获取#datepicker_date中的日期,将其转换为'dd。MM yy' 格式,然后将其放回#datepicker_date 字段中。

对于额外的好处,我想先看看它是什么格式,如果它是'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 和验证器 set_value() 方法加载数据。

echo form_label('Date:');
$data = array(
     'name'        => 'date',
     'id'       => 'datepicker_date',
     'readonly' => 'readonly'


 );
echo form_input($data, set_value('date', $date_loaded_via_controller));
4

2 回答 2

0

你可以试试这个(来自我工作项目的 CI 辅助函数)

$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));

您可以将此函数保存在帮助文件中并在使用前加载它。

于 2012-12-02T22:43:40.407 回答
0

终于找到了答案。

如您所知,我使用两个字段,一个隐藏字段,一个用于演示,这样在数据库中保存了常用字段('yy-mm-dd' 字段)。我一直在尝试做的是在从数据库加载日期进行编辑时从一种格式转换为另一种格式。

所以,与其我试图转换它,解决方案是简单地使用 datepickers 'setDate' 函数并让它处理它。

我通过在#alt_date_field 上添加日期选择器来做到这一点,并将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。

于 2012-12-03T09:36:21.013 回答