@LoranDeMarcus

Как через new Date() получить день недели и число?

Добрый день, хочу получить завтрашний и послезавтрашний день в таком формате "День недели, день месяц". Например: "Вторник, 6 июля", "Среда, 7 июля"

const date = new Date();
const tomorrow = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate() + 1}`
const dayAfterTomorrow = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate() + 2}`

const tomorrowString = tomorrow.toLocaleString('ru', { month: 'long', weekday: 'long' })
const dayAfterTomorrowString = dayAfterTomorrow.toLocaleString('ru', { month: 'long', weekday: 'long' })


Но так не работает.
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
const format = (date) => {
  const formatted = date.toLocaleString('ru-RU', {
    weekday: 'long',
    day: 'numeric',
    month: 'long',
  });
  
  return `${formatted[0].toUpperCase()}${formatted.slice(1)}`;
};

const today = Date.now();
const day = 24 * 60 * 60 * 1000;
const tomorrow = format(new Date(today + day));
const dayAfterTomorrow = format(new Date(today + day * 2));

console.log(tomorrow); // 'Вторник, 6 июля'
console.log(dayAfterTomorrow); // 'Среда, 7 июля'

или
const formatter = new Intl.DateTimeFormat('ru-RU', {
    weekday: 'long',
    day: 'numeric',
    month: 'long',
});

const format = (date) => {
  const formatted = formatter.format(date);
  
  return `${formatted[0].toUpperCase()}${formatted.slice(1)}`;
};

const today = Date.now();
const day = 24 * 60 * 60 * 1000;
const tomorrow = format(new Date(today + day));
const dayAfterTomorrow = format(new Date(today + day * 2));

console.log(tomorrow); // 'Вторник, 6 июля'
console.log(dayAfterTomorrow); // 'Среда, 7 июля'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы