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

how to format mysql timestamp into mm/dd/yyyy H:i:s in javascript

本文关键字:dd mm yyyy 格式 javascript 中将 mysql 时间戳      更新时间:2023-09-26

我正在从数据库中获取值,这是一个时间戳。我需要使用javascript将其转换为mm/dd/yyyy H:i:s。我尝试了下面的代码。但是它在firefox/ie中不起作用。如何解决这个问题

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和ie中得到NaN/NaN/NaN/NaN/NaN/NaN。如有任何帮助,不胜感激

您的代码缺少尾随的}。如果你对它进行更好的格式化,你会看到:

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。最好将其移出函数体。


EDIT根据我的评论,这对你来说是失败的原因是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)