Объект Date
Объект Date
позволяет работать с датами и временем в JavaScript. Существуют различные способы создания объекта Date
. Первый способ заключается в использовании пустого конструктора без параметров, в этом случае объект будет указывать на текущую дату компьютера:
var currentDate = new Date();
document.write(currentDate);
Второй способ заключается в передаче в конструктор Date количества миллисекунд, которые прошли с начала эпохи Unix
, то есть с 1 января 1970 года 00:00:00 GMT:
var myDate = new Date(1359270000000);
// Sun Jan 27 2013 10:00:00 GMT+0300 (RTZ 2 (зима))
document.write(myDate);
Третий способ состоит в передаче в конструктор Date
дня, месяца и года. Если мы используем полное название месяца, то оно пишется в по-английски, если используем сокращенный вариант, тогда используется формат месяц/день/год:
var myDate = new Date("27 March 2008");
// или так
var myDate = new Date("3/27/2008");
// Thu Mar 27 2008 00:00:00 GMT+0300 (RTZ 2 (зима))
document.write(myDate);
Четвертый способ состоит в передаче в конструктор Date
всех параметров даты и времени. В данном случае используются по порядку следующие параметры: new Date(год, месяц, число, час, минуты, секунды, миллисекунды)
. При этом надо учитывать, что отсчет месяцев начинается с нуля, то есть январь 0
, а декабрь 11
// Tue Dec 25 2012 18:30:20 GMT+0300 (RTZ 2 (зима))
var myDate = new Date(2012,11,25,18,30,20,10);
Получение даты и времени
Для получения различных компонентов даты применяется ряд методов:
getDate()
возвращает день месяцаgetDay()
возвращает день недели (отсчет начинается с 0 - воскресенье, и последний день - 6 - суббота)getMonth()
возвращает номер месяца (отсчет начинается с нуля, то есть месяц с номер 0 - январь)getFullYear()
возвращает годtoDateString()
возвращает полную дату в виде строкиgetHours()
возвращает час (от 0 до 23)getMinutes()
возвращает минуты (от 0 до 59)getSeconds()
возвращает секунды (от 0 до 59)getMilliseconds()
возвращает миллисекунды (от 0 до 999)toTimeString()
возвращает полное время в виде строки
Получим текущую дату:
var days = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"];
var months = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь","Декабрь"];
var myDate = new Date();
var fullDate = "Сегодня: " + myDate.getDate() + " " + months[myDate.getMonth()] + " " + myDate.getFullYear() + ", " + days[myDate.getDay()];
// Сегодня: 18 Август 2015, Вторник
document.write(fullDate);
Перевести из числовых значений в более привычные названия для дней недели и месяцев используются массивы. Получив индекс дня недели myDate.getDay()
и индекс месяца myDate.getMonth()
можно получить нужный элемент из массива.
Теперь получим текущее время:
var welcome;
var myDate = new Date();
var hour = myDate.getHours();
var minute = myDate.getMinutes();
var second = myDate.getSeconds();
if (minute < 10) {
minute = "0" + minute;
}
if (second < 10) {
second = "0" + second;
}
if (hour < 12) {
welcome = "Доброе утро";
} else if (hour < 17) {
welcome = "Добрый день";
} else {
welcome = "Добрый вечер";
}
// Добрый вечер, текущее время: 22:50:39
document.write(welcome + ", текущее время: " + hour + ":" + minute + ":" + second);
Установка даты и времени
Кроме задания параметров даты в конструкторе для установки мы также можем использовать дополнительные методы объекта Date
:
setDate()
: установка дня в датеsetMonth()
: уставовка месяца (отсчет начинается с нуля, то есть месяц с номер 0 - январь)setFullYear()
: устанавливает годsetHours()
: установка часаsetMinutes()
: установка минутsetSeconds()
: установка секундsetMilliseconds()
: установка миллисекунд
Установим дату:
var days = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четвег", "Пятница", "Суббота"];
var months = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь","Декабрь"];
var myDate = new Date();
myDate.setDate(15);
myDate.setMonth(6);
myDate.setYear(2013);
var fullDate = myDate.getDate() + " " + months[myDate.getMonth()] + " " + myDate.getFullYear() + ", " + days[myDate.getDay()];
// 15 Июль 2013, Понедельник
document.write(fullDate);
При установке значений мы можем передать величину, большую, чем максимальное допустимое значение. Например, установить для часа число 54
:
myDate.setHour(54);
В этом случае значение часа будет равно 54 - 24 * 2 = 6
, а оставшиеся часы будут составлять два дня (24 * 2
), что прибавит к дате два дня. То же самое действует и в отношении дней, минут, секунд, миллисекунд и месяцев.