Created
September 23, 2017 10:45
-
-
Save lcherone/68c0ef8b0e6be591576a8f752628bbae to your computer and use it in GitHub Desktop.
Javascript Date.UTC mysql date converter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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