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

Posted

技术标签:

【中文标题】在 beforeShowDay 函数中更改 datepicker 日期格式【英文标题】:Change datepicker date format in beforeShowDay function 【发布时间】:2013-06-16 20:13:25 【问题描述】:

我正在使用 beforeShowDay 函数来突出显示与 mysql 查询“已使用”日期匹配的日期。

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

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

问题在于 DATE 的值如下所示:Mon May 27 2013 00:00:00 GMT+0700 (SE Asia Standard Time)

我已尝试设置 dateFormat。还尝试了 date.toString('yyyy-mm-dd') 认为它会像 javascript 日期对象一样工作。

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

【问题讨论】:

【参考方案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) );

【讨论】:

感谢您的建议。我在某处看到了第二个。但是月份和日期必须是 2 位数字格式,我不知道有一种快速而干净的方法来实现这一点。添加另一个插件似乎只是为了在一个地方重新格式化日期。我真的很惊讶没有一个简单的格式化命令可以调用来做到这一点。 谢谢。我正要评论说我在这里找到了类似的解决方案:***.com/questions/3605214/… @Lee 通常会发生这种情况,当我们搜索时,我们将无法找到确切的链接。发布问题后,我们将找到答案的确切链接:) 是的,非常正确。有时这几乎是令人尴尬的。【参考方案2】:

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

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

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

日期选择器日期格式

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



);

【讨论】:

以上是关于在 beforeShowDay 函数中更改 datepicker 日期格式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Jquery datePicker 选项 beforeShowDay 中运行多个函数并返回

在 Jquery Datepicker 中动态更改突出显示的日期

如何更改 dat.gui 下拉菜单的位置?

通过JQuery datePicker中的beforeShowDay返回多个值

jquery datepicker datepicker beforeShowDay明年不工作

确定 maxDate 时排除 beforeShowDay