Date.setSeconds() в JavaScript — встановити секунди


Загальний опис

Date.prototype.setSeconds() є методом об'єкта Date в JavaScript, що дозволяє встановлювати секунди для дати. Його головна задача - зміна значення секунд в існуючому об'єкті дати.

Припустимо, у вас є інтерфейс таймера на веб-сайті, і ви хочете дати користувачам можливість встановлювати конкретну кількість секунд. У такому випадку:

let currentTimer = new Date();
currentTimer.setSeconds(45);
console.log(currentTimer);

У цьому прикладі ми встановлюємо кількість секунд на 45 для об'єкта currentTimer.

Однак важливо зауважити, що Date.prototype.setSeconds() може приймати ще два додаткових параметри, що є необов'язковими: секунди та мілісекунди. Це означає, що ви також можете вказати додаткову інформацію про мілісекунди:

let currentTimer = new Date();
currentTimer.setSeconds(45, 500);
console.log(currentTimer);

Тут ми встановлюємо секунди на 45 і мілісекунди на 500.

Якщо ви вказуєте значення, яке виходить за рамки діапазону (наприклад, 65 секунд), JavaScript автоматично скоригує хвилини і секунди об'єкта Date. Наприклад, якщо встановити 65 секунд, то хвилини збільшаться на одиницю, а секунди будуть встановлені в 5.

автор: Bond

Порада

Перш ніж передавати значення у метод setSeconds(), завжди переконайтеся, що воно є числом і входить у потрібний вам діапазон. Передавання некоректних даних може призвести до створення дати Invalid Date, яка може спричинити проблеми у подальшій роботі.

автор: Bond
Порада

Якщо ви часто використовуєте специфічні операції із датами, розгляньте можливість розширення прототипу Date. Це дозволить вам створювати власні методи, які будуть взаємодіяти з setSeconds() або іншими методами. Однак будьте обережні: не змінюйте вбудовані методи, щоб уникнути потенційних проблем з сумісністю.

автор: Bond
Нотатка

Якщо ви встановлюєте значення, що виходить за рамки нормального діапазону секунд (0-59), то Date.prototype.setSeconds() автоматично скоригує інші частини дати. Це може бути корисним, але також може призвести до неочікуваних результатів. Наприклад, якщо встановити 90 секунд:

let dateExample = new Date();
dateExample.setSeconds(90);
console.log(dateExample); // Виведе час із збільшенням на хвилину.
автор: Bond

Синтаксис

setSeconds(secondsValue)
setSeconds(secondsValue, msValue)

Параметри

secondsValue

Ціле число від 0 до 59, яке представляє секунди.

автор: Bond

msValue

Ціле число від 0 до 999, яке представляє мілісекунди.

автор: Bond

Повернення

timestamp

Метод змінює об'єкт Date безпосередньо, повертаючи його новий штамп часу (timestamp). Якщо параметр є NaN (або іншими значеннями, які перетворюються на NaN, такими як undefined), дата встановлюється як "Invalid Date", і метод повертає NaN.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 3 12 3
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

Цей код демонструє, як можна використовувати метод Date.prototype.setSeconds(), для встановлення значення секунд для об'єкта Date. У користувача є можливість ввести значення секунд, яке він хоче встановити, і після натискання кнопки, буде виведено новий об'єкт Date з оновленими секундами.

HTML

<header>
  <h2 class="title">Date.prototype.setSeconds()</h2>
  <p class="description">Встановлює секунди вказаної дати відповідно до місцевого часу.</p>
</header>
<main>
  <div class="result">
    <input type="number" id="seconds" min="0" max="59" placeholder="Введіть секунди (0-59)" />
    <button onclick="setSeconds()">Встановити секунди</button>
    <div id="output">Тут буде результат</div>
  </div>
</main>

CSS

body {
  font-size: 16px;
  line-height: 1.5;
  font-family: monospace;
}

header {
  background-color: #f1f1f1;
  margin-bottom: 25px;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

header h2.title {
  padding-bottom: 15px;
  border-bottom: 1px solid #999;
}

header p.description {
  font-style: italic;
  color: #222;
}

.result {
  background-color: #f8f8f8;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

#output {
  margin-top: 10px;
}

JS

function setSeconds() {
  const secondsInput = document.getElementById('seconds');
  const outputDiv = document.getElementById('output');
  let now = new Date();
  if (secondsInput.value === "" || secondsInput.value < 0 || secondsInput.value > 59) {
    outputDiv.textContent = 'Будь ласка, введіть коректне значення секунд (0-59).';
  } else {
    now.setSeconds(secondsInput.value);
    outputDiv.textContent = 'Оновлена дата та час: ' + now.toString();
  }
}
//# sourceURL=pen.js
автор: Bond

У цьому прикладі ми використовуємо setSeconds() для того, щоб додати 1 секунду до поточної дати, імітуючи роботу таймера. Інтервал setInterval викликається кожну секунду і показує, скільки секунд залишилося до завершення таймера.

let countdownDate = new Date(); // Задаємо поточний час
countdownDate.setMinutes(countdownDate.getMinutes() + 1); // Додаємо 1 хвилину до поточного часу

const countdown = setInterval(() => {
    let currentDate = new Date(); // Поточний час
    
    let difference = countdownDate - currentDate; // Різниця між заданою датою та поточним часом
    
    if (difference <= 0) {
        clearInterval(countdown); // Зупиняємо таймер
        console.log("Час вийшов!");
    } else {
        let seconds = Math.floor((difference / 1000) % 60);
        currentDate.setSeconds(currentDate.getSeconds() + 1); // Додаємо 1 секунду
        console.log("Залишилося секунд: " + seconds);
    }
}, 1000);
автор: Bond

У цьому прикладі ми маємо масив дат datesArray. За допомогою методу map() ми ітеруємося по кожному елементу масиву і використовуємо setSeconds(45), щоб встановити секунди на значення "45" для кожної дати. Таким чином, ми отримаємо масив дат із однаковим значенням секунд.

let datesArray = [new Date(), new Date(2023, 8, 20, 14, 55), new Date(2025, 2, 15, 11, 30)];

// Встановлюємо секунди на "45" для всіх дат у масиві
datesArray = datesArray.map(date => {
    date.setSeconds(45);
    return date;
});

console.log(datesArray); // Виводимо масив дат із однаковими секундами
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід