Javascript вывод предыдущего и следующего дня с учетом конца месяца
Почему предыдущий месяц выводит? Как исправить?
function time(date){
let date18 = new Date(date)
date18.setHours(18,0)
const month = date => date.toLocaleString('default', { month: 'long' });
const returnString = date => {
let x = {}
x.day = +date < +date18? date.getDate() : (date.setDate(date.getDate()+1), date.getDate())
x.month = month(date)
x.nextDay = (date.setDate(date.getDate()+1), date.getDate())
x.monthX = month(date)
return `${x.day + (x.month !== x.monthX? ' '+x.month : '')} и ${x.nextDay} ${x.monthX}, в 19:00`
}
return returnString(date)
}
function addZero(i) {
if (i < 10) {i = "0" + i}
return i;
}
let date = new Date();
let day = date.getDate();
let month = date.getMonth();
let year = date.getFullYear();
let hours = addZero(date.getHours());
let minutes = addZero(date.getMinutes());
Month = date.getMonth();
let new_date = new Date(year+'-'+month+'-'+day+' '+hours+':'+minutes);
let a = new Date('2021-12-30 17:00')
let b = new Date('2021-12-30 18:00')
let c = new Date('2021-11-14 11:00')
let d = new Date('2021-11-29 22:00')
console.log(time(new_date))
//console.log(time(c))
//console.log(time(d))
Ответы (1 шт):
Автор решения: Dmitry Lobanov
→ Ссылка
function getDate() {
const now = new Date();
const lastCallDate = new Date('2021-12-30T18:00');
return now < lastCallDate ? '30 и 31 декабря, в 19:00' : '31 декабря и 1 января, в 19:00';
}