Как создать функцию даты и времени, первым аргументом которой будет число, а вторым единица измерения, которая будет добавлять определенный параметр
В реализации необходимо использовать объект Date, пример:
function add(element, name){
var myDate = new Date();
if ( name == 'year') {
myDate.setFullYear(myDate.getFullYear() + element);
}
else if ( name == 'month') {
myDate.setMonth(myDate.getMonth() + element);
}
else if ( name == 'day') {
myDate.setDate(myDate.getDate() + element);
}
else if ( name == 'minute') {
myDate.setMinutes(myDate.getMinutes() + element);
}
else if ( name == 'hour') {
myDate.setHours(myDate.getHours() + element);
} else {
console.log("Ne to");
}
return console.log(myDate);
}
add(2, 'year');
add(6, 'month');
add(3, 'day');
add(23,'hour');
add(6, 'minute');
Ответы (1 шт):
Автор решения: Sergey K.
→ Ссылка
Для такой ситуации лучше использовать enum'ы или константы. Создать что-то наподобие
const TimeUnit= Object.freeze({
HOUR: Symbol("hour"),
MINUTE: Symbol("minute"),
SECOND: Symbol("second")
});
Далее, создать функцию, которая использует простейший switch-case
function addTime(dt, value, timeUnit) {
switch(timeUnit){
case TimeUnit.HOUR: // здесь прибавляйте часы
break;
case TimeUnit.MINUTE: // здесь прибавляйте минуты
break;
case TimeUnit.SECOND: // здесь прибавляйте секунды
break;
// И далее по списку делайте что желаете с получаемым объектом.
}
}