14.07.2022, 18:37
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
NovichokJS,
нельзя изменить день, можно только дату!!!
|
|
14.07.2022, 18:38
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
voraa,
|
|
14.07.2022, 18:39
|
Профессор
|
|
Регистрация: 25.04.2022
Сообщений: 159
|
|
Voraa, спасибо, но мне надо преобразовать один момент в моем коде только. Мне нужно формат просто задать правильный, выше я спросил это у Рони уже.
|
|
14.07.2022, 18:41
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
NovichokJS,
... исправленный вариант со switch
const getNewDate = initValue => {
const newValue = {
add(dateInterval, number) {
switch (dateInterval) {
case 'years':
initValue.setFullYear(initValue.getFullYear() + number);
break;
case 'months':
initValue.setMonth(initValue.getMonth() + number);
break;
case 'days':
initValue.setDate(initValue.getDate() + number);
break;
case 'hours':
initValue.setHours(initValue.getHours() + number);
break;
case 'minutes':
initValue.setMinutes(initValue.getMinutes() + number);
break;
case 'seconds':
initValue.setSeconds(initValue.getSeconds() + number);
break;
case 'milliseconds':
initValue.setMilliseconds(initValue.getMilliseconds() + number);
break;
}
return this;
},
subtract(dateInterval, number) {
switch (dateInterval) {
case 'years':
initValue.setFullYear(initValue.getFullYear() - number);
break;
case 'months':
initValue.setMonth(initValue.getMonth() - number);
break;
case 'days':
initValue.setDate(initValue.getDate() - number);
break;
case 'hours':
initValue.setHours(initValue.getHours() - number);
break;
case 'minutes':
initValue.setMinutes(initValue.getMinutes() - number);
break;
case 'seconds':
initValue.setSeconds(initValue.getSeconds() - number);
break;
case 'milliseconds':
initValue.setMilliseconds(initValue.getMilliseconds() - number);
break;
}
return this;
},
result() {
return initValue;
},
};
return newValue;
};
const res = getNewDate(new Date(2020, 0, 7, 17, 17, 17))
.add('minutes', 2)
.add('days', 8)
.subtract('years', 1)
.result();
// Output: ...Jan 15 2019 17:19:17.....
console.log(res);
|
|
14.07.2022, 18:41
|
Профессор
|
|
Регистрация: 25.04.2022
Сообщений: 159
|
|
Сообщение от рони
|
NovichokJS,
нельзя изменить день, можно только дату!!!
|
ок, мне просто надо чтоб в таком формате выводилась
Jan 15 2019 17:19:17...
Потому что сейчас выводится вот в таком:
2019-01-10T15:19:17.000Z
|
|
14.07.2022, 18:44
|
Профессор
|
|
Регистрация: 25.04.2022
Сообщений: 159
|
|
Сообщение от рони
|
NovichokJS,
... исправленный вариант со switch
const getNewDate = initValue => {
const newValue = {
add(dateInterval, number) {
switch (dateInterval) {
case 'years':
initValue.setFullYear(initValue.getFullYear() + number);
break;
case 'months':
initValue.setMonth(initValue.getMonth() + number);
break;
case 'days':
initValue.setDate(initValue.getDate() + number);
break;
case 'hours':
initValue.setHours(initValue.getHours() + number);
break;
case 'minutes':
initValue.setMinutes(initValue.getMinutes() + number);
break;
case 'seconds':
initValue.setSeconds(initValue.getSeconds() + number);
break;
case 'milliseconds':
initValue.setMilliseconds(initValue.getMilliseconds() + number);
break;
}
return this;
},
subtract(dateInterval, number) {
switch (dateInterval) {
case 'years':
initValue.setFullYear(initValue.getFullYear() - number);
break;
case 'months':
initValue.setMonth(initValue.getMonth() - number);
break;
case 'days':
initValue.setDate(initValue.getDate() - number);
break;
case 'hours':
initValue.setHours(initValue.getHours() - number);
break;
case 'minutes':
initValue.setMinutes(initValue.getMinutes() - number);
break;
case 'seconds':
initValue.setSeconds(initValue.getSeconds() - number);
break;
case 'milliseconds':
initValue.setMilliseconds(initValue.getMilliseconds() - number);
break;
}
return this;
},
result() {
return initValue;
},
};
return newValue;
};
const res = getNewDate(new Date(2020, 0, 7, 17, 17, 17))
.add('minutes', 2)
.add('days', 8)
.subtract('years', 1)
.result();
// Output: ...Jan 15 2019 17:19:17.....
console.log(res);
|
я понял, я так исправил, но такой вариант возвращает дату в формате
2019-01-15T15:19:17.000Z
Мне же нужно в таком формате:
Jan 15 2019 17:19:17
|
|
14.07.2022, 18:44
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
Сообщение от рони
|
нельзя изменить день, можно только дату!!!
|
Сообщение от NovichokJS
|
resultDate = initValue.setDate(initValue.getDay() - number);
|
|
|
14.07.2022, 18:59
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
Сообщение от NovichokJS
|
Мне же нужно в таком формате:
Jan 15 2019 17:19:17
|
https://learn.javascript.ru/intl
const getNewDate = initValue => {
const newValue = {
add(dateInterval, number) {
switch (dateInterval) {
case 'years':
initValue.setFullYear(initValue.getFullYear() + number);
break;
case 'months':
initValue.setMonth(initValue.getMonth() + number);
break;
case 'days':
initValue.setDate(initValue.getDate() + number);
break;
case 'hours':
initValue.setHours(initValue.getHours() + number);
break;
case 'minutes':
initValue.setMinutes(initValue.getMinutes() + number);
break;
case 'seconds':
initValue.setSeconds(initValue.getSeconds() + number);
break;
case 'milliseconds':
initValue.setMilliseconds(initValue.getMilliseconds() + number);
break;
}
return this;
},
subtract(dateInterval, number) {
switch (dateInterval) {
case 'years':
initValue.setFullYear(initValue.getFullYear() - number);
break;
case 'months':
initValue.setMonth(initValue.getMonth() - number);
break;
case 'days':
initValue.setDate(initValue.getDate() - number);
break;
case 'hours':
initValue.setHours(initValue.getHours() - number);
break;
case 'minutes':
initValue.setMinutes(initValue.getMinutes() - number);
break;
case 'seconds':
initValue.setSeconds(initValue.getSeconds() - number);
break;
case 'milliseconds':
initValue.setMilliseconds(initValue.getMilliseconds() - number);
break;
}
return this;
},
result() {
let formatter = new Intl.DateTimeFormat("en", {
month: "short",
year: 'numeric',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
hour12: false
});
return formatter.format(initValue);
},
};
return newValue;
};
const res = getNewDate(new Date(2020, 0, 7, 17, 17, 17))
.add('minutes', 2)
.add('days', 8)
.subtract('years', 1)
.result();
// Output: ...Jan 15 2019 17:19:17.....
console.log(res);
|
|
14.07.2022, 19:03
|
Профессор
|
|
Регистрация: 25.04.2022
Сообщений: 159
|
|
Сообщение от рони
|
|
ок, у меня сейчас эта переменная resultDate никакой функции не выполняет. Я удалил её с кода и результат не изменился. Мне нужно чтобы входная дата не менялась. Как поправить это?
|
|
14.07.2022, 19:06
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
Сообщение от NovichokJS
|
Мне нужно чтобы входная дата не менялась. Как поправить это?
|
const getNewDate = initValue => {
initValue = new Date(initValue);
|
|
|
|