Convert UNIX Time to mm/dd/yy hh:mm (24 hour) in JavaScript

前端 未结 1 651
Happy的楠姐
Happy的楠姐 2021-02-10 17:39

I have been using

timeStamp = new Date(unixTime*1000);
document.write(timeStamp.toString());

And it will output for example:

Tue Jul 6

1条回答
  •  独厮守ぢ
    2021-02-10 18:13

    Just add an extra method to the Date object, so you can reuse it as much as you want. First, we need to define a helper function, String.padLeft:

    String.prototype.padLeft = function (length, character) { 
        return new Array(length - this.length + 1).join(character || ' ') + this; 
    };
    

    After this, we define Date.toFormattedString:

    Date.prototype.toFormattedString = function () {
        return [String(this.getMonth()+1).padLeft(2, '0'),
                String(this.getDate()).padLeft(2, '0'),
                String(this.getFullYear()).substr(2, 2)].join("/") + " " +
               [String(this.getHours()).padLeft(2, '0'),
                String(this.getMinutes()).padLeft(2, '0')].join(":");
    };
    

    Now you can simply use this method like any other method of the Date object:

    var timeStamp = new Date(unixTime*1000);
    document.write(timeStamp.toFormattedString());
    

    But please bear in mind that this kind of formatting can be confusing. E.g., when issuing

    new Date().toFormattedString()
    

    the function returns 07/06/10 22:05 at the moment. For me, this is more like June 7th than July 6th.

    EDIT: This only works if the year can be represented using a four-digit number. After December 31st, 9999, this will malfunction and you'll have to adjust the code.

    0 讨论(0)
提交回复
热议问题