имеется код :
var date = dateTransform('2017-05-16 13:45').add(24, 'hours');
console.log(date.valuez);
function dateTransform (newDate) {
var dateT = newDate.split(' ');
var dateArr = dateT[0].split('-');
var timeArr = dateT[1].split(':');
var yyyy = parseInt(dateArr[0]);
var mm = parseInt(dateArr[1]);
var dd = parseInt(dateArr[2]);
var h = parseInt(timeArr[0]) + 3;
var m = parseInt(timeArr[1]);
var s = 0;
var newDate = new Date(yyyy, mm, dd, h, m, s);
if (typeof newDate == 'object') {
Object.defineProperty(newDate, 'valuez', {
get: function() {
year = newDate.getFullYear();
console.info(year);
month = newDate.getMonth();
if (newDate.getMonth() < 10) {
month = '0' + newDate.getMonth();
}
day = newDate.getDate();
if (newDate.getDate() < 10) {
day = '0' + newDate.getDate();
}
hour = newDate.getHours();
if (newDate.getHours() < 10) {
hour = '0' + newDate.getHours();
}
minute = newDate.getMinutes();
if (newDate.getMinutes() < 10) {
minute = '0' + newDate.getMinutes();
}
return year + '-' + month + '-' + day + ' ' + hour + ':' + minute;
}
});
}
return {
add: function(val, command) {
if (command == 'hours') {
this.value = new Date(newDate.setHours(newDate.getHours() + val));
return this.value;
}
},
}
};
сначала вызывается метод add, потом свойство valuez для приведения даты в вид 2017-05-16 16:45.
но консоль возвращает undefined. Если не использовать метод, а только свойство, то все работает хорошо. В чем может быть проблема?