如何将mysql时间戳格式化为mm / dd / yyyy H:i:s在javascript中

我从数据库中获取值是时间戳。我需要将其转换为mm / dd / yyyy H:i:s使用javascript。 我尝试了以下代码。 但它没有工作它firefox / ie.But它的工作在chrome..how解决它。

function formatDate(value){ if(value){ Number.prototype.padLeft = function(base,chr){ var len = (String(base || 10).length - String(this).length)+1; return len > 0? new Array(len).join(chr || '0')+this : this; } var d = new Date(value), dformat = [ (d.getMonth()+1).padLeft(), d.getDate().padLeft(), d.getFullYear()].join('/')+ ' ' + [ d.getHours().padLeft(), d.getMinutes().padLeft(), d.getSeconds().padLeft()].join(':'); return dformat; } 

我在firefox中获得NaN / NaN / NaN / NaN / NaN / NaN和ie.Any帮助非常感谢

您的代码缺少尾随} 。 如果您将其格式化得更好,您会看到:

 function formatDate(value){ if(value){ Number.prototype.padLeft = function(base,chr){ var len = (String(base || 10).length - String(this).length)+1; return len > 0? new Array(len).join(chr || '0')+this : this; } var d = new Date(value), dformat = [ (d.getMonth()+1).padLeft(), d.getDate().padLeft(), d.getFullYear()].join('/')+ ' ' + [ d.getHours().padLeft(), d.getMinutes().padLeft(), d.getSeconds().padLeft()].join(':'); return dformat; } } 

它在Firefox中运行良好,现在。

请注意,每次调用此函数时都要定义Number.prototype.padLeft 。 最好将其移出function体。


编辑根据我的评论,你失败的原因是Date对象只接受某些格式的字符串。 此外,我发现你的函数只是改变字符串的格式:你真的不需要烦扰日期,而只是对你的输入做字符串操作:

 var formatDate = function(dateString) { // Convert 'yyyy-mm-dd hh:mm:ss' to 'mm/dd/yyyy hh:mm:ss' return dateString.replace(/^(\d{4})-(\d{2})-(\d{2})/, '$2/$3/$1'); }; 

更容易!

 function formatDate(d) { d = new Date(d * 1000); return d.getMonth() + 1 + '/' + d.getDate() + '/' + d.getFullYear() + " " + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds(); } 

Javascript已经知道如何使用时间戳。

 var d = new Date(timestamp * 1000); //will create a date object 

然后,您可以使用所有Javascript Date方法对其进行格式化。 ( http://www.w3schools.com/jsref/jsref_obj_date.asp

编辑:将时间戳转换为毫秒(* 1000)