Получить из адресной строки значение параметра
sec
см.
URL.searchParams:
const params = (new URL(document.location)).searchParams;
const sec = Number(params.get('sec')) || 5; // или 5 по умолчанию
Для обратного отсчёта лучше не вычитать раз в секунду единицу из счётчика, а сразу отметить момент в будущем, до которого в любой момент времени показывать оставшиеся секунды:
const future = new Date();
future.setTime(future.getTime() + 1000 * sec);
Запустите таймер раз, скажем, в 200мс, и смотрите, сколько там осталось времени до момента
future
.
const update = () => {
const diff = future.getTime() - Date.now(); // сколько осталось, в миллисекундах
const secondsLeft = Math.round(diff / 1000); // сколько осталось секунд
if (diff <= 0) {
// время прошло
} else {
// обновить в кнопке число оставшихся секунд
// и вызвать это обновление снова через чуть-чуть:
setTimeout(update, 200);
}
}
update();