Date.parse. Отличие заключается в том, что корректно обрабатывает строки, содержащие миллисекунды.
function parseDate(v, matcher)
{
var m = (matcher || arguments.callee.matcher)(v) || [v, 0];
return Date.parse(m[0]) + (+m[1]);
//return Date.parse(m[0]) + parseInt(m[1], 10);
};
parseDate.matcher = function(v)
{
var m = v.match(/^(.+)\.(\d{3})$/);
m && m.shift();
return m;
};
Примеры:
var s = '21 May 1958 10:12:01'; var s1 = Date.parse(s); // -366572879000 var s2 = parseDate(s); // -366572879000 var t = '21 May 1958 10:12:01.000'; var t1 = Date.parse(t); // NaN var t2 = parseDate(t); // -366572879000По умолчанию функция рассматривает входную строку, задающую время в формате, когда миллисекунды указаны в конце строки, после секунд и отделены от них символом точка. Если дата задается в другом формате, можно передать вторым параметром либо переопределить
parseDate.matcher собственную функцию-замыкание, которая преобразует входную строку в массив, где первый элемент - дата в обычном формате, а второй элемент - миллисекунды.
Функция может оказаться полезной при разборе текстовых логфайлов некоторых многопоточных процессов где требуется просмотреть временные интервалы между различными событиями с учетом заданных миллисекунд.
Функция названа по аналогии со встроенными
parseInt и parseFloat.
No comments:
Post a Comment