What would be the best way to convert a mysql date format date into a javascript Date object?
mySQL date format is \'YYYY-MM-DD\' (ISO Format).
maybe something like?
[Y,M,D,h,m,s] = '2020-11-06 16:00:00'.split(/[- :]/)
You can split the date '-' as separator and use this constructor:
var d = new Date(Y, M - 1, D);
mySqlDate
is in the format "yyyy-mm-dd".
var javaDate = new Date(mySqlDate);
This line of code works fine for me.
function getJsDate(sqlDate){
var returnValue;
var timeString="00:00:00";
try{
var dateArray=sqlDate.trim().split(" ");
var dateString=dateArray[0];
if(dateArray.length>1){timeString=dateArray[1];}
console.log(timeString);
var yyyymmddArray=dateString.trim().split("-");
var hhmmssArray=timeString.trim().split(":");
returnValue = new Date(yyyymmddArray[0], (yyyymmddArray[1]-1), yyyymmddArray[2], hhmmssArray[0], hhmmssArray[1], hhmmssArray[2]);
}catch(err){
console.log("Error: "+ err.message);
}
return returnValue;
}
In AngularJS Way, Thanks to @Jonas Sciangula Street
.filter('toJSDate', function(){
return function (dateString) {
return new Date(Date.parse(dateString.replace('-','/','g')))
};
})
Building onto Jhurisman's answer. If you would want to set the date's time as well use the following:
var dateParts = mysqlDate;
var timeParts = dateParts[2].substr(3).split(":");
var jsDate = new Date(
dateParts[0],
dateParts[1] - 1,
dateParts[2].substr(0,2),
timeParts[0],
timeParts[1],
timeParts[2]
);