Полагаю, простое решение - использовать метод разбора объекта Date, который возвращает миллисекунды объекта.Суть в том, что он предназначен для возврата времени от времени эпохи UNIX.
// see docs for Date constructor
const baseDate = new Date(0,0,0,0,0,0,0);
const baseMS = Date.parse(baseDate);
// base milliseconds is not zero
// it defaults to a day before Jan 1, 1970 in ms
console.log(baseMS);
function convertToMS(dy,hr,mn,s,ms) {
const date = new Date(0,0,dy,hr,mn,s,ms);
const dateMS = Date.parse(date);
return dateMS - baseMS;
}
// one day in milliseconds
console.log(convertToMS(1,0,0,0,0));
console.log(24 * 60 * 60 * 1000);
PS Я не совсем понимаю логику, почему новый объект Date с нулем во всехПараметры возвращают большое отрицательное значение, но мы должны учесть это в коде.
РЕДАКТИРОВАТЬ: Поскольку существует расхождение между количеством дней в каждом месяце и днями в каждомгод, лучше не указывать год и месяцы при вводе функции convertToMS
.