在 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 中动态更改突出显示的日期
通过JQuery datePicker中的beforeShowDay返回多个值