2.1 Объект Date
Работа с датами и числами — важная часть разработки веб-приложений. JavaScript предоставляет встроенные объекты и методы для манипулирования датами и числами. В этой лекции мы рассмотрим объект Date, его методы и способы форматирования дат и чисел.
Объект Date в JavaScript представляет собой дату и время. У него есть множество методов для работы с датами, включая получение текущей даты и времени, задание даты и времени, а также форматирование.
Создание объекта Date
Date() без параметров, он будет содержать
текущую дату и время — момент своего создания.
Создать объект Date можно несколькими способами.
1. Текущая дата и время:
const now = new Date();
console.log(now); // Выводит текущую дату и время
2. Задание определенной даты и времени:
const specificDate = new Date('2024-07-07T10:00:00');
console.log(specificDate); // Выводит дату 7 июля 2024 года
3. Задание даты и времени с помощью числовых значений:
const anotherDate = new Date(2024, 6, 7, 10, 0, 0);
console.log(anotherDate); // Выводит дату 7 июля 2024 года
2.2 Методы объекта Date()
Получение компонентов даты:
getFullYear(): получить год (четыре цифры)getMonth(): получить месяц (от 0 до 11)getDate(): получить день месяца (от 1 до 31)getHours(): получить часы (от 0 до 23)getMinutes(): получить минуты (от 0 до 59)getSeconds(): получить секунды (от 0 до 59)
Пример:
const now = new Date();
console.log(now.getFullYear()); // Текущий год
console.log(now.getMonth()); // Текущий месяц (-1)
console.log(now.getDate()); // Текущий день
console.log(now.getHours()); // Текущий час
console.log(now.getMinutes()); // Текущая минута
console.log(now.getSeconds()); // Текущая секунда
Установка компонентов даты:
setFullYear(year): установить годsetMonth(month): установить месяцsetDate(day): установить день месяцаsetHours(hours): установить часыsetMinutes(minutes): установить минутыsetSeconds(seconds): установить секунды
Пример:
const date = new Date();
date.setFullYear(2025);
date.setMonth(0); // Январь
date.setDate(15);
date.setHours(12);
date.setMinutes(30);
date.setSeconds(45);
console.log(date.toString());
2.3 Форматирование дат
JavaScript предоставляет методы для форматирования дат в строку. Самый популярный метод — toLocaleDateString() для форматирования даты в зависимости от локали.
Пример использования toLocaleDateString():
const now = new Date();
console.log(now.toLocaleDateString('en-US')); // "7/7/2024" (MM/DD/YYYY)
console.log(now.toLocaleDateString('en-GB')); // "07/07/2024" (DD/MM/YYYY)
console.log(now.toLocaleDateString('ru-RU')); // "07.07.2024" (DD.MM.YYYY)
Метод toLocaleTimeString()
Метод toLocaleTimeString() возвращает время в виде строки в локализованном формате:
const now = new Date();
console.log(now.toLocaleTimeString('en-CA'));
console.log(now.toLocaleTimeString('en-GB'));
Метод toLocaleString()
Метод toLocaleString() возвращает дату и время в виде строки в локализованном формате:
const now = new Date();
console.log(now.toLocaleString('en-CA'));
console.log(now.toLocaleString('en-GB'));
Метод toISOString()
Метод toISOString() возвращает дату и время в формате ISO 8601:
const now = new Date();
console.log(now.toISOString()); // "2023-07-05T10:00:00.000Z"
2.4 Форматирование чисел
Метод toLocaleString()
Метод toLocaleString() позволяет форматировать числа в соответствии с локальными настройками:
const number = 1234567.89;
console.log(number.toLocaleString()); // "1,234,567.89" в формате США или "1 234 567,89" в локальном формате
console.log(number.toLocaleString('de-DE')); // "1.234.567,89" в формате Германии
Форматирование чисел с помощью Intl.NumberFormat
Конструктор Intl.NumberFormat предоставляет вам еще более гибкие возможности для форматирования чисел:
const number = 1234567.89;
const usFormatter = new Intl.NumberFormat('en-US');
console.log(usFormatter.format(number)); // "1,234,567.89"
const deFormatter = new Intl.NumberFormat('de-DE');
console.log(deFormatter.format(number)); // "1.234.567,89"
const customFormatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD'
});
console.log(customFormatter.format(number)); // "$1,234,567.89"
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ