01:05
Урок 9: Работа с датами

Курс по программированию на JavaScript

Урок 9: Работа с датами

Работа с датами является важной частью многих приложений. JavaScript предоставляет встроенный объект Date для работы с датами и временем. В этом уроке мы рассмотрим, как создавать и манипулировать объектами Date, а также основные методы для работы с датами.

Обзор объекта Date

Объект Date в JavaScript представляет собой дату и время. Вы можете создать объект Date различными способами.

// Создание текущей даты и времени
let now = new Date();
console.log(now);
// Tue May 17 2024 15:24:30 GMT+0000 (Coordinated Universal Time)
// Создание даты с указанием года, месяца, дня, часа, минуты, секунды и миллисекунды
let specificDate = new Date(2024, 4, 17, 15, 24, 30, 0);
console.log(specificDate);
// Fri May 17 2024 15:24:30 GMT+0000 (Coordinated Universal Time)

Месяцы в JavaScript начинаются с 0 (январь) до 11 (декабрь), поэтому в примере выше май представлен как 4.

Основные методы работы с датами

Объект Date предоставляет множество методов для получения и установки различных компонентов даты и времени.

Получение компонентов даты и времени

Вы можете использовать методы getFullYear, getMonth, getDate, getHours, getMinutes, getSeconds и getMilliseconds для получения соответствующих компонентов даты и времени.

// Пример получения компонентов даты
let now = new Date();
console.log(now.getFullYear()); // Год
console.log(now.getMonth()); // Месяц (0-11)
console.log(now.getDate()); // День месяца (1-31)
console.log(now.getHours()); // Часы (0-23)
console.log(now.getMinutes()); // Минуты (0-59)
console.log(now.getSeconds()); // Секунды (0-59)
console.log(now.getMilliseconds()); // Миллисекунды (0-999)
// 2024
// 4
// 17
// 15
// 24
// 30
// 0

Установка компонентов даты и времени

Вы можете использовать методы setFullYear, setMonth, setDate, setHours, setMinutes, setSeconds и setMilliseconds для установки соответствующих компонентов даты и времени.

// Пример установки компонентов даты
let date = new Date();
date.setFullYear(2025);
date.setMonth(6); // Июль
date.setDate(20);
date.setHours(10);
date.setMinutes(30);
date.setSeconds(15);
date.setMilliseconds(500);
console.log(date);
// Sun Jul 20 2025 10:30:15 GMT+0000 (Coordinated Universal Time)

Другие полезные методы объекта Date

Объект Date предоставляет и другие полезные методы, такие как getTime, toLocaleDateString, toLocaleTimeString и toISOString.

// Получение временной метки
let now = new Date();
console.log(now.getTime()); // Время в миллисекундах с 1 января 1970 года

// Локализованные строковые представления даты и времени
console.log(now.toLocaleDateString()); // Локализованная дата
console.log(now.toLocaleTimeString()); // Локализованное время

// ISO строковое представление даты и времени
console.log(now.toISOString()); // ISO строка
// 1710523470000
// 5/17/2024
// 3:24:30 PM
// 2024-05-17T15:24:30.000Z

Упражнения

Упражнение 1: Определение возраста

Создайте функцию calculateAge, которая принимает дату рождения в формате YYYY-MM-DD и возвращает возраст. Используйте объект Date для вычислений.

Решение:

// Функция для расчета возраста
function calculateAge(birthDate) {
 let birth = new Date(birthDate);
 let today = new Date();
 let age = today.getFullYear() - birth.getFullYear();
 let monthDiff = today.getMonth() - birth.getMonth();
 
 if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birth.getDate())) {
 age--;
 }
 
 return age;
}

// Пример использования функции
console.log(calculateAge('1990-05-17')); // Возраст на текущую дату
// 34 (если текущая дата 17 мая 2024 года)

Объяснение: Мы создали функцию calculateAge, которая принимает строку с датой рождения, создает объекты Date для даты рождения и текущей даты, а затем вычисляет возраст с учетом месяца и дня.

Упражнение 2: Форматирование даты

Создайте функцию formatDate, которая принимает объект Date и возвращает строку в формате DD/MM/YYYY. Используйте методы объекта Date для получения компонентов даты.

Решение:

// Функция для форматирования даты
function formatDate(date) {
 let day = date.getDate();
 let month = date.getMonth() + 1; // Месяцы начинаются с 0
 let year = date.getFullYear();
 
 // Добавление ведущих нулей к дню и месяцу
 day = day < 10 ? '0' + day : day;
 month = month < 10 ? '0' + month : month;
 
 return day + '/' + month + '/' + year;
}

// Пример использования функции
let date = new Date(2024, 4, 17); // 17 мая 2024 года
console.log(formatDate(date)); // 17/05/2024
// 17/05/2024

Объяснение: Мы создали функцию formatDate, которая принимает объект Date и возвращает строку в формате DD/MM/YYYY. Мы используем методы объекта Date для получения компонентов даты и добавляем ведущие нули для дней и месяцев, состоящих из одной цифры.

Категория: JavaScript | Просмотров: 28 | Добавил: Admin | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: