Convert javascript to date object to mysql date format (YYYY-MM-DD) Convert javascript to date object to mysql date format (YYYY-MM-DD) javascript javascript

Convert javascript to date object to mysql date format (YYYY-MM-DD)


To get date

new Date().toJSON().slice(0, 10)//2015-07-23

for datetime

new Date().toJSON().slice(0, 19).replace('T', ' ')//2015-07-23 11:26:00

Note, that resulting date / datetime will always be in UTC timezone


Probably best to use a library like Date.js (although that hasn't been maintained in years) or Moment.js.

But to do it manually, you can use Date#getFullYear(), Date#getMonth() (it starts with 0 = January, so you probably want + 1), and Date#getDate() (day of month). Just pad out the month and day to two characters, e.g.:

(function() {    Date.prototype.toYMD = Date_toYMD;    function Date_toYMD() {        var year, month, day;        year = String(this.getFullYear());        month = String(this.getMonth() + 1);        if (month.length == 1) {            month = "0" + month;        }        day = String(this.getDate());        if (day.length == 1) {            day = "0" + day;        }        return year + "-" + month + "-" + day;    }})();

Usage:

var dt = new Date();var str = dt.toYMD();

Note that the function has a name, which is useful for debugging purposes, but because of the anonymous scoping function there's no pollution of the global namespace.

That uses local time; for UTC, just use the UTC versions (getUTCFullYear, etc.).

Caveat: I just threw that out, it's completely untested.


The shortest version of https://stackoverflow.com/a/11453710/3777994:

/** * MySQL date * @param {Date} [date] Optional date object * @returns {string} */function mysqlDate(date){    date = date || new Date();    return date.toISOString().split('T')[0];}

Using:

var date = mysqlDate(); //'2014-12-05'