От автора: приветствую вас, друзья. Мы познакомились с объектами в JavaScript и уже умеем создавать объекты и работать с ними. Однако в JavaScript есть и уже готовые для работы объекты, в частности это объект Date, который позволяет работать с датой и временем в JavaScript.
Итак, для того, чтобы работать с датой в JavaScript, нам необходим объект Date. Создать данный объект очень просто, это делается с помощью ключевого слова new. Давайте создадим нужный нам объект:
1 2 3 |
var date = new Date(); console.log(typeof date); console.log(date); |
Как видим, это действительно объект, о чем нам сообщил метод typeof в первой распечатке. Во второй распечатке переменной date мы видим текущую дату и время… вот только формат странный какой-то.
Для того, чтобы получить из данного объекта только нужные нам фрагменты и в нужном формате, JavaScript предлагает нам набор методов для работы с объектом Date. Давайте рассмотрим их и попробуем получить отдельно год, месяц, день, часы, минуты и секунды.
getFullYear() — позволяет получить год в формате 4-х цифр;
getMonth() — возвращает 2 цифры месяца от 0 до 11;
getDate() — возвращает число от 1 до 31;
getHours() — возвращает час;
getMinutes() — возвращает минуты;
getSeconds() — возвращает секунды;
getMilliseconds() — возвращает миллисекунды (0,001 секунды);
1 2 3 4 5 6 7 8 |
var date = new Date(); console.log('Год: ' + date.getFullYear()); console.log('Месяц: ' + date.getMonth()); console.log('Число: ' + date.getDate()); console.log('Час: ' + date.getHours()); console.log('Минуты: ' + date.getMinutes()); console.log('Секунды: ' + date.getSeconds()); console.log('Миллисекунды: ' + date.getMilliseconds()); |
Еще раз обращаю ваше внимание на месяц. Метод getMonth() возвращает число месяца от 0 до 11, т.е. 0 соответствует январю, 11 — декабрю. Давайте подумаем, как вместо цифры месяца мы можем вывести название месяца. Сделать это не сложно:
1 2 3 |
var date = new Date(); var monthes = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь']; console.log('Текущий месяц: ' + monthes[date.getMonth()]); |
Давайте теперь попробуем вывести дату в человеческом формате:
1 2 3 4 5 6 7 8 |
var date = new Date(); var monthes = ['Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря']; var day = date.getDate(), month = monthes[date.getMonth()], year = date.getFullYear(), hours = date.getHours(), minutes = (date.getMinutes() < 10) ? '0' + date.getMinutes() : date.getMinutes(); console.log('Сегодня: ' + day + ' ' + month + ' ' + year + ' ' + hours + ':' + minutes); |
Обратите внимание на получение минут. Метод getMinutes(), как и метод getHours(), возвращают минуты и часы без ведущего нуля, т.е. если на часах время, скажем 14:08, тогда бы метод getMinutes() вернул нам просто цифру 8 и мы бы увидели такое время в консоли — 14:8. Смотрится не очень, поэтому для определения минут мы использовали тернарный оператор условия, который проверяет полученное значение минут. Если оно меньше 10, тогда мы добавим к этому значению ведущий 0. То же самое вы можете сделать и для часов самостоятельно.
Ну и еще один пример даты, где вместо строкового представления месяца будет его числовое представление:
1 2 3 4 5 6 7 8 |
var date = new Date(); var monthes = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']; var day = date.getDate(), month = monthes[date.getMonth()], year = date.getFullYear(), hours = date.getHours(), minutes = (date.getMinutes() < 10) ? '0' + date.getMinutes() : date.getMinutes(); console.log('Сегодня: ' + day + '.' + month + '.' + year + ' ' + hours + ':' + minutes); |
Теперь мы получим немного другой формат даты.
Код выше выглядит немного сложно для, казалось бы, такой несложной задачи. На самом деле для объекта Date в JavaScript есть десятки других методов, некоторые из которых позволяют проще решить поставленную задачу. В следующих статьях мы узнаем о них.
На этом мы будем завершать данную статью. Если вы хотите больше узнать о JavaScript, тогда рекомендую обратить свое внимание на уроки по JavaScript и отдельный курс по языку JavaScript. Удачи!