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

Dee*_*epu 2 javascript jquery date

我从数据库获取值是时间戳.我需要将其转换为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;
}
Run Code Online (Sandbox Code Playgroud)

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

Xop*_*ter 5

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

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;
  }
}
Run Code Online (Sandbox Code Playgroud)

它现在在Firefox中运行良好.

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


编辑根据我的评论,你失败的原因是该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');
};
Run Code Online (Sandbox Code Playgroud)

更容易!