jQuery UI DatePicker输出日期格式

时间:2012-01-20 08:44:41

标签: jquery-ui datepicker

我有内联jQuery UI DatePicker,需要自定义输出日期的格式和外观,代码:

<div id="date-start"></div>
<div class="date start" id="date-start-output"></div>

$(function(){
    // Datepicker
    $('#date-start').datepicker({
        inline:true,            
        showOtherMonths: true,
        altField: "#date-start-value",
        altFormat: "dd M yy",
        dateFormat: "dd M yy",
        onSelect: function(){
            var day1 = $("#date-start").datepicker('getDate').getDate();                 
            var month1 = $("#date-start").datepicker('getDate').getMonth() + 1;             
            var year1 = $("#date-start").datepicker('getDate').getFullYear();               
            var str_output = "<b>" + day1 + "</b><span>" + month1 + "<br />" + year1 + "</span>";
            $('#date-start-output').html(str_output);
        }

    }); 

});

它有效,但是在#date-start-output中我的日期格式不是“dd M yy”而是“dd m yy”。如何为月份设置必要的输出格式? 另外我需要在页面加载后显示#date-start-output当前日期,我正在尝试“beforeShow”事件,但它不能与“onSelect”事件一起使用。

感谢。

1 个答案:

答案 0 :(得分:6)

onSelect事件处理程序第一个参数是选定的日期作为文本。 我猜它会在初始化期间按照指定格式化

请参阅http://jqueryui.com/demos/datepicker/#event-onSelect

$(function(){
    // Datepicker
    $('#date-start').datepicker({
        inline:true,            
        showOtherMonths: true,
        altField: "#date-start-value",
        altFormat: "dd M yy",
        dateFormat: "dd M yy",
        onSelect: function(dateText){
            $('#date-start-output').html(dateText);
        }
    }); 
});

如果您需要特殊格式,可以尝试:

$(function(){
    // Datepicker
    $('#date-start').datepicker({
        ...
        onSelect: function(){
            var dateText = $.datepicker.formatDate("<b>dd</b><span>M<br />yy</span>", $(this).datepicker("getDate"));
            $('#date-start-output').html(dateText);
        }
    }); 
});

不确定它是否适用于HTML标记