코드는 잘 작동해야합니다. 나는 기본 아이디어를 취하여 단위를 결합 할 수있는보다 유연한 함수를 던졌다. 그것은 매우 받아 들여지는 것에 관해서는 편안하게이지만, 원할 경우 더 엄격하게 만들 수 있습니다.
(function() {
var units = {
ms: 1/1000,
m: 60,
min: 60, mins: 60,
minute: 60, minutes: 60,
h: 60*60,
hr: 60*60, hrs: 60*60,
hour: 60*60, hours: 60*60,
d: 60*60*24,
day: 60*60*24, days: 60*60*24,
};
Date.parseInterval = function(interval) {
var seconds = 0;
interval.replace(/(\d+(?:\.\d*)?)\s*([a-z]+)?/ig, function($0, number, unit) {
if (unit) {
number *= units[unit.toLowerCase()] || 1;
}
seconds += +number;
});
return seconds * 1000;
};
})();
console.log(Date.parseInterval('1 day') === 86400000);
console.log(Date.parseInterval('20 min') === 1200000);
console.log(Date.parseInterval('1 day, 3 hours, and 22.5 seconds') === 97222500);
사용에보고 할 수도 있습니다 내장 Date 객체 이런 종류의 물건, 그것은는 윤년으로 물건을 많이 대처할 수와 이 접근법은 처리 할 수없는 일광 절약 시간제입니다. – GordonM