我有一个大表从solr返回数据,我无法做任何服务器端,所以我需要使用客户端javascript和发出的日期格式是:
yyyy-mm-ddThh:mm:ssZ
可爱。我希望它显示为:
dd-M-yyyy (or 21-Jan-2011, for example)
每个日期都在一个带有“formatdate”类的td中。我认为这样的(下面)会起作用,坐在
中$(document).ready(function()
并自动格式化所有内容,但没有这样的运气;
$('.formatdate').each(function() {
var date = document.getElementByClassName('formatdate');
$(".formatdate").innerHTML = new Date(date);
});
有什么想法吗?
编辑:另一方面是插入此
"mRender": function(date, type, full) { return new Date(date).toDateString(); }
进入datatables返回“2012年11月2日星期五”,但后来我没有格式化选项 - 它真的必须是“02-Nov-2012”...再次感谢!
答案 0 :(得分:0)
你的意思是这样吗? Fiddle
$(".formatdate").each(function () {
var $this = $(this),
date = $this.html();
$this.html(new Date(date));
});
答案 1 :(得分:0)
问题在于你基本上是这样说的:
.formatdate
......
.formatdate
元素.formatdate
元素中。毋庸置疑,这不是你的意图!
试试这个:
var months = "JanFebMarAprMayJunJulAugSepOctNovDec";
$(".formatdate").each(function() {
var dateparts = this.firstChild.nodeValue.match(/(\d{4})-(\d\d)-(\d\d)/);
this.firstChild.nodeValue =
dateparts[2] + "-"
+ months.substr((dateparts[1]-1)*3,3) + "-"
+ dateparts[0];
});