Skip to content

Instantly share code, notes, and snippets.

@lcherone
Created September 23, 2017 10:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lcherone/68c0ef8b0e6be591576a8f752628bbae to your computer and use it in GitHub Desktop.
Save lcherone/68c0ef8b0e6be591576a8f752628bbae to your computer and use it in GitHub Desktop.
Javascript Date.UTC mysql date converter
/**
* Date.UTC mysql date converter
*
* @author Lawrence Cherone <lawrence@cherone.co.uk>
*/
var UTC = (function() {
var _Date = function(year, month, day, hour, minute, second) {
// year is string string date
if (typeof year === "string" && year != '' && month == undefined && day == undefined) {
var regex_date = /^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9])?$/;
var regex_datetime = /^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
// mysql datetime format 00-00-00 00:00:00
if (year.match(regex_datetime)) {
var t = year.replace(regex_datetime, "$1 $2 $3 $4 $5 $6").split(' ');
return new Date(Date.UTC(t[0], t[1]-1, t[2], t[3], t[4], t[5]));
}
// mysql date format 0000-00-00
else if (year.match(regex_date)) {
var t = year.replace(regex_date, "$1 $2 $3 0 0 0").split(' ');
return new Date(Date.UTC(t[0], t[1]-1, t[2], t[3], t[4], t[5]));
} else {
var dt = new Date(year);
return new Date(Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds()));
}
} else {
hour = (hour == undefined) ? 0 : hour;
minute = (minute == undefined) ? 0 : minute;
second = (second == undefined) ? 0 : second;
return new Date(Date.UTC(year, month, day, hour, minute, second));
}
};
var _Timestamp = function(year, month, day, hour, minute, second) {
return _Date(year, month, day, hour, minute, second).getTime();
};
return {
Date: _Date,
Timestamp: _Timestamp
};
})();
/* Example - Get UTC Date object from mysql date formats or build */
console.log(UTC.Date('2016-02-01'));
console.log(UTC.Date('2016-02-01 01:00:30'));
console.log(UTC.Date(2016, 02, 01, 01, 00, 30));
/* Example - Get UTC timestamp from mysql date formats or build */
console.log(UTC.Timestamp('2016-02-01'));
console.log(UTC.Timestamp('2016-02-01 01:00:30'));
console.log(UTC.Timestamp(2016, 02, 01, 01, 00, 30));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment