JavaScript implementation of a date formatting function to share

  • 2020-03-30 04:32:19
  • OfStack

Since you often need to format the date in your work, unlike the backend, which has convenient methods to call, you can define a format method in the prototype of date, as follows:


//Date time prototype with a format
Date.prototype.Format = function (formatStr) {
    var str = formatStr;
    var Week = [' day ', ' one ', ' two ', ' three ', ' four ', ' five ', ' six '];     str = str.replace(/yyyy|YYYY/, this.getFullYear());
    str = str.replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100).toString() : '0' + (this.getYear() % 100));
    var month = this.getMonth() + 1;
    str = str.replace(/MM/, month > 9 ? month.toString() : '0' + month);
    str = str.replace(/M/g, month);     str = str.replace(/w|W/g, Week[this.getDay()]);     str = str.replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate());
    str = str.replace(/d|D/g, this.getDate());     str = str.replace(/hh|HH/, this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours());
    str = str.replace(/h|H/g, this.getHours());
    str = str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes().toString() : '0' + this.getMinutes());
    str = str.replace(/m/g, this.getMinutes());     str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds());
    str = str.replace(/s|S/g, this.getSeconds());
    return str;
}

It is relatively simple to call, such as:


var d = new Date();
var str = d.Format("yyyy-MM-dd  hh:mm:ss");
console.log(str);


Related articles: