Изменить дату каждую пятницу

0

Мне нужно иметь возможность автоматически менять дату каждую пятницу с помощью javascript. Каждую пятницу дата изменится на следующую пятницу.

Например, дата в настоящее время говорит "пятница 25 октября", в определенное время в пятницу, 25 октября мне нужна дата, чтобы перейти на "пятницу 1 ноября" и так далее.

Поэтому каждую неделю в определенное время я устанавливаю ее автоматически, обновляя ее до следующей пятницы.

  • 0
    Я не эксперт в JS, но этот документ MS, кажется, показывает, как выполнять математику даты, используя объект Date JS. Подсказка: не пытайтесь выяснить алгоритм, чтобы сделать это самостоятельно - есть много подводных камней.
Теги:
date

2 ответа

1
var txtFriday = $("#friday"), // a HTML id
    myDate = new Date();

// The getDay() method returns the day of the week (from 0 to 6) for the specified date.
// Note: Sunday is 0, Monday is 1, and so on.
if (myDate.getDay() === 5){
    //Note: If adding five days to a date shifts the month or year, the changes are handled automatically by the Date object itself!
    myDate.setDate(myDate.getDate()+7);
}

txtFriday.text(myDate);
0

Общая идея заключается в том, что при загрузке страницы вы запускаете setTimeout, срок действия которого истекает в указанное вами время, которое изменяет указанную дату (и устанавливает другой setTimeout на следующую пятницу).

Есть некоторые предостережения, касающиеся точности (вы можете захотеть сделать setTimeout, срок действия которого истекает значительно раньше, чем желаемая дата, и запускать таймауты меньшего времени, пока вы не получите фактическую дату).

Образец кода:

function getNextFriday() {
    var today = new Date();
    var nextFriday = new Date(today.getFullYear(), today.getMonth(), today.getDate()-today.getDay()+7+5);
  // TODO: change to the apropriate time
    return nextFriday;
}

window.setTimeout(changeMyDate, getNextFriday()-new Date());

function changeMyDate() {
  console.log('Time to change the date');
  window.setTimeout(changeMyDate, getNextFriday() - new Date());
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню