How can I convert UTC date-time string (e.g. 2011-03-29 17:06:21 UTC
) into Epoch (milliseconds) in javascript?
If this is not possible, is there any way to compare (like <, >) UTC date time strings?
How can I convert UTC date-time string (e.g. 2011-03-29 17:06:21 UTC
) into Epoch (milliseconds) in javascript?
If this is not possible, is there any way to compare (like <, >) UTC date time strings?
Share Improve this question edited Apr 5, 2016 at 9:10 Sandeep 1,5327 gold badges22 silver badges32 bronze badges asked Apr 15, 2011 at 17:01 katsuyakatsuya 1,2043 gold badges16 silver badges21 bronze badges5 Answers
Reset to default 6Note that UTC date strings can be compared lexicographically, like strings, since the higher order values appear leftmost in the string.
var s1 = '2011-03-29 17:06:21 UTC'
, s2 = '2001-09-09 01:46:40 UTC';
s1 > s2; // => true
s2 > s1; // => false
You can extract the date fields from your example string and return the number of milliseconds by using the Date.UTC
method:
var getEpochMillis = function(dateStr) {
var r = /^\s*(\d{4})-(\d\d)-(\d\d)\s+(\d\d):(\d\d):(\d\d)\s+UTC\s*$/
, m = (""+dateStr).match(r);
return (m) ? Date.UTC(m[1], m[2]-1, m[3], m[4], m[5], m[6]) : undefined;
};
getEpochMillis('2011-03-29 17:06:21 UTC'); // => 1301418381000
getEpochMillis('2001-09-09 01:46:40 UTC'); // => 1000000000000
this is how to do it. No nonsese. Date.UTC accepts a UTC timestamp and returns epoch
var epoch_date = Date.UTC(year,mon,day,hours,min,sec,milisec);
Using datejs will help you convert the UTC string to a Date object. After that it's simply a matter of calling .getTime() on the date object to get the milliseconds.
As long as the datetime string is something unambiguous like an ISO8601-ish format (i.e. not MM/DD/YYYY vs DD/MM/YYYY), you can just use the Date constructor to parse it and then Math.floor:
Math.floor(new Date('2011-03-29 17:06:21 UTC') / 1000); // => 1301418381
You could use getDateFromFormat(dateValue, dateFormat)
(available here) like so:
getDateFromFormat("2011-03-29 17:06:21","yyyy-MM-dd HH:mm:ss")
It returns the epoch time in milliseconds.