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