2016-01-07 4 views
0

У меня есть функция timeMachine, которая принимает 5 параметров и сообщает вам, в какой день после того, как вы ввели. Но вместо написания newDate.setDate (dateObject.getDate() + daysLater); Я хочу использовать цикл for, который перебирает длину аргументов и записывает входные данные в newDate.Как использовать цикл for для цикла каждого аргумента в newDate?

var timeMachine=function(yearsLater,monthsLater,daysLater,hoursLater,minutesLater) { 
     var dateObject=new Date(); 
     var newDate=new Date(); 
     newDate.setDate(dateObject.getDate()+daysLater); 
     newDate.setMonth(dateObject.getMonth()+monthsLater); 
     newDate.setYear(dateObject.getFullYear()+yearsLater); 
     newDate.setHours(dateObject.getHours()+hoursLater); 
     newDate.setMinutes(dateObject.getMinutes()+minutesLater); 
     console.log(newDate); 
    } 
    timeMachine() 
+0

Готовы ли вы использовать стороннюю библиотеку для выполнения той же функции? –

+0

@PeterWagener Я еще не изучил все javascript и едва знаю любую третью библиотеку. Но конечно! – Firefalcon1155

ответ

0

Это не использует for цикл, но я предлагаю использовать MomentJS для любой даты на основе манипуляций. Говоря из личного опыта, манипулирование временем легко испортить.

момент уже есть такого рода «Timemachine()» функций, встроенных в Например:.

var futureMoment = moment() 
     .add(yearsLater, 'years') 
     .add(monthsLater, 'months') 
     .add(daysLater, 'days') 
     .add(hoursLater, 'hours') 
     .add(minutesLater, 'minutes'); 

console.log(futureMoment.format()); // <<== get a formatted string 
console.log(futureMoment.toDate()); // <<== 'toDate' gets the native Date object 

Он также имеет copious documentation и хорошие плагины для дополнительной функциональности. Если вы добавите moment-parseformat, вы можете легко проанализировать большинство строк даты реального времени (т. Е. «20 ноября 2015 года» или «11/20/15» или «2015/11/20» и т. Д.) В объекты Moment.

В принципе, не делайте этого самостоятельно, если вам действительно не нужна функциональность голой кости. Стоять на плечах гигантов гораздо проще.

+0

благодарим вас за советы, еще одна вещь, которую я должен задать: как я могу изменить синтаксис строк реального мира в ванильном javascript? – Firefalcon1155

+0

@ Firefalcon1155 означает делать что-то вроде 'new Date (" 11/20/2015 ")'? Это непоследовательно в разных браузерах. Для некоторых примеров см. Http://dygraphs.com/date-formats.html. –

+0

нет, я имею в виду вместо вывода «Fri Jan 06 2017 GMT-0800 (PST)», я хочу, чтобы это было похоже на «06 января 2017 года». – Firefalcon1155

Смежные вопросы