Get String in YYYYMMDD format from JS date object?

后端 未结 30 2261
一个人的身影
一个人的身影 2020-11-22 10:47

I\'m trying to use JS to turn a date object into a string in YYYYMMDD format. Is there an easier way than concatenating Date.getYear()

30条回答
  •  孤城傲影
    2020-11-22 11:41

    Working from @o-o's answer this will give you back the string of the date according to a format string. You can easily add a 2 digit year regex for the year & milliseconds and the such if you need them.

    Date.prototype.getFromFormat = function(format) {
        var yyyy = this.getFullYear().toString();
        format = format.replace(/yyyy/g, yyyy)
        var mm = (this.getMonth()+1).toString(); 
        format = format.replace(/mm/g, (mm[1]?mm:"0"+mm[0]));
        var dd  = this.getDate().toString();
        format = format.replace(/dd/g, (dd[1]?dd:"0"+dd[0]));
        var hh = this.getHours().toString();
        format = format.replace(/hh/g, (hh[1]?hh:"0"+hh[0]));
        var ii = this.getMinutes().toString();
        format = format.replace(/ii/g, (ii[1]?ii:"0"+ii[0]));
        var ss  = this.getSeconds().toString();
        format = format.replace(/ss/g, (ss[1]?ss:"0"+ss[0]));
        return format;
    };
    
    d = new Date();
    var date = d.getFromFormat('yyyy-mm-dd hh:ii:ss');
    alert(date);
    

    I don't know how efficient that is however, especially perf wise because it uses a lot of regex. It could probably use some work I do not master pure js.

提交回复
热议问题