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).
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).
Now javascript can do this easily, no more moment.js or similar :) readable to humans, and the desired language.
var MySQLDate = '2021-01-26 16:35:00';
var JavaScriptDate1 = new Date(MySQLDate).toLocaleDateString(
'es-CO',
{
year: 'numeric',
month: 'long',
day: 'numeric',
hour12: true,
hour: '2-digit',
minute: '2-digit'
}
);
var JavaScriptDate2 = new Date(MySQLDate).toLocaleDateString(
'ko-KR',
{
year: 'numeric',
month: 'long',
day: 'numeric',
hour12: false,
hour: '2-digit',
minute: '2-digit'
}
);
console.log(JavaScriptDate1);
console.log(JavaScriptDate2);
Here's the function to convert the time format.
function sqlToJsDate(sqlDate){
//sqlDate in SQL DATETIME format ("yyyy-mm-dd hh:mm:ss.ms")
var sqlDateArr1 = sqlDate.split("-");
//format of sqlDateArr1[] = ['yyyy','mm','dd hh:mm:ms']
var sYear = sqlDateArr1[0];
var sMonth = (Number(sqlDateArr1[1]) - 1).toString();
var sqlDateArr2 = sqlDateArr1[2].split(" ");
//format of sqlDateArr2[] = ['dd', 'hh:mm:ss.ms']
var sDay = sqlDateArr2[0];
var sqlDateArr3 = sqlDateArr2[1].split(":");
//format of sqlDateArr3[] = ['hh','mm','ss.ms']
var sHour = sqlDateArr3[0];
var sMinute = sqlDateArr3[1];
var sqlDateArr4 = sqlDateArr3[2].split(".");
//format of sqlDateArr4[] = ['ss','ms']
var sSecond = sqlDateArr4[0];
var sMillisecond = sqlDateArr4[1];
return new Date(sYear,sMonth,sDay,sHour,sMinute,sSecond,sMillisecond);
}```
Reference:[DeepInTheCode][1]
[1]: https://deepinthecode.com/2014/08/05/converting-a-sql-datetime-to-a-javascript-date/
You can get MySQL date (yyyy-mm-dd) like this easy javascript
to get Date and time
var date = new Date();
date.toISOString().slice(0, 19).replace('T', ' ');
to get only date yyyy-mm-dd
var date = new Date();
date.toISOString().slice(0, 10).replace('T', ' ');
if you notice any change to date value add your time zone for example
var date = new Date(date+" GTM"); //for GMT time zone
Adapt it with your code
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;
}
TypeScript with proper typing (no implicit string/int conversation):
/**
* @example
* mysql_date_to_js_date("2019-12-31");
*/
export function mysql_date_to_js_date(mysql_date: string) {
var parts = mysql_date.split("-");
if (parts.length != 3) {
return undefined;
}
var year = parseInt(parts[0]);
var month = parseInt(parts[1]) - 1; // months indexes are zero based, e.g. 9 == Octobre
var day = parseInt(parts[2]);
return new Date(year, month, day);
}