2014-11-04 2 views
1

Мне нужно что-то очевидное, указывающее на меня в отношении функций JS.Javascript OO Function

Следующий код работает, но я хочу призвать его в любом месте:

var pattern = /(\d{2})\-(\d{2})\-(\d{4})/; 
var date = entry.date.split(' '); 
var date = date[0]; 
var date = new Date(date.replace(pattern,'$3-$2-$1')); 
var year = date.getYear(); 
var month = date.getMonth(); 
var day = date.getDay(); 

Что бы лучшая практика, чтобы поместить это в глобальной функции, так что я могу просто сделать adjustDate(string). Двойные точки (к сожалению, не в моих силах), чтобы объяснить, как я тогда мог бы получить доступ ко всем объектам, таким как year, month, day.

Заранее благодарен!

+0

Какой выход из этого? Я имею в виду, какие части вам нужно получить после обработки? Переменная 'date'? – jwatts1980

ответ

1

я бы просто вернуть date без абстрагирования существующие методы

function AdjustedDate(dateString) 
{ 
    return new Date(dateString.split(' ')[0].replace(/(\d{2})\-(\d{2})\-(\d{4})/, '$3-$2-$1')); 
} 

var ad = AdjustedDate(entry.date); 

alert(ad); 
alert(ad.getDay()); 
1

Передайте запись в функцию, а затем передайте объект, содержащий информацию, которую вы хотите. Затем просто получите доступ к нему, как если бы вы использовали обычный объект JS.

function adjustDate(entry) { 
    var pattern = /(\d{2})\-(\d{2})\-(\d{4})/; 
    var date = entry.date.split(' '); 
    var date = date[0]; 
    var date = new Date(date.replace(pattern,'$3-$2-$1')); 
    var year = date.getYear(); 
    var month = date.getMonth(); 
    var day = date.getDay(); 
    return { day: day, month: month, year: year } 
} 

var dateObject = adjustDate(/*entry*/) 

dateObject.day // day 
dateObject.month // month 
2

Не можете ли вы просто объявить функцию?

function adjustDate(entry) { 
    var date = entry.date.split(' '); 
    date = date[0]; 
    date = new Date(date.replace(/(\d{2})\-(\d{2})\-(\d{4})/, '$3-$2-$1')); 

    return { 
     year: date.getYear(), 
     month: date.getMonth(), 
     day: date.getDay() 
    }; 
} 
Смежные вопросы