在beforeShowDay函数中更改datepicker日期格式

时间:2013-06-20 05:11:31

标签: javascript jquery-ui-datepicker

我正在使用beforeShowDay函数来突出显示与'used'日期的MySQL查询匹配的日期。

我的日期选择器设置如下:

dp = jQuery( "#datepicker" ).datepicker(
                                { 
                                    minDate: +1, 
    maxDate: "+1M",
    dateFormat: 'yyyy-mm-dd',
    beforeShowDay: function(date) {
                                                          q = q_dates[date];
                                                    }
                                                }
                                                );

问题是DATE的价值如下:2013年5月27日星期一00:00:00 GMT + 0700(东南亚标准时间)

我尝试过设置dateFormat。还尝试了date.toString('yyyy-mm-dd'),认为它可以像Javascript日期对象一样工作。

如何将DATE转换为格式yyyy-mm-dd?

2 个答案:

答案 0 :(得分:1)

如何使用Date.js插件。查看他们的documentation

还可以尝试使用以下代码:

date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() ;

修改

对于2位数的日期和月份,我建议您查看此SO question

var date = new Date("Mon May 27 2013 00:00:00 GMT+0700 (SE Asia Standard Time)");

alert(date.getFullYear() + "-" + ("0" + (date.getMonth() + 1)).slice(-2) + "-" + ("0" + date.getDate()).slice(-2) );

答案 1 :(得分:0)

不需要任何额外的插件。使用内置的 jqueryui formatDate();

对于所有不同的格式,请查看它们的 docs

为了质量起见,我将在这里发布所有日期格式

Datepicker 日期格式

"mm/dd/yy"
"yy-mm-dd"
"d M, y"
"d MM, y"
"DD, d MM, yy"
"'day' d 'of' MM 'in the year' yy"

jqueryui

//return today's date
$.datepicker.formatDate("yy-mm-dd", $('#datepicker').datepicker("getDate"));

//alternatively you can use this syntax
jQuery.datepicker.formatDate('yy-mm-dd', 'getDate');

日期选择器

$('#datepicker').datepicker({
dateFormat: 'yy-mm-dd',
changeMonth: true,
changeYear: true,
beforeShowDay : function (date){

//format date
var jquerydate = $.datepicker.formatDate("yy-mm-dd", date);

//alternative syntax
var jquerydate = jQuery.datepicker.formatDate('yy-mm-dd', date);

}

});