Объект Date в Javascript
Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье вы узнали об объекте Math в Javascript. В данной статье я бы хотел рассказать об объекте Date в Javascript. Работать с датами приходится абсолютно везде, поэтому во всех языках программирования функции для работы с датой уже есть. В этом плане javascript не стал исключением. Давайте на примерах начнем разбираться с объектом Date, и для начала, выведем текущую дату и время. Делается это следующим образом:
<script> var date = new Date(); document.write(date); //Thu Jul 10 2014 20:18:24 GMT+0600 (Уральское время (зима)) </script>
Также можно передавать различные аргументы. Допустим такой вариант:
var date = new Date(1231451223115); document.write(date); //Fri Jan 09 2009 03:47:03 GMT+0600 (Уральское время (зима))
Если передаётся числовой параметр, то здесь имеется ввиду, количество миллисекунд, прошедших с полуночи 1 января 1970 года (эта дата считывается зарождением эпохи Unix).
Вместо числового параметра может передаваться строка (используется крайне редко, я тоже не рекомендую данный способ). Например:
var date = new Date("30 March 1990 15:00"); //Fri Mar 30 1990 15:00:00 GMT+0600 (Уральское время (зима))
Также можно создавать дату с указанием только года месяца и числа. Ещё можно указывать часы минуты и секунды:
var date = new Date(1990, 2, 30); var date1 = new Date(1990, 2, 30, 15, 15, 5); document.write(date + "</br>"); //Fri Mar 30 1990 00:00:00 GMT+0600 (Уральское время (зима)) document.write(date1); //Fri Mar 30 1990 15:15:05 GMT+0600 (Уральское время (зима))
Думаю, на данном этапе проблем с созданием дат не должно возникнуть. Перейдём к рассмотрению различных методов по работе с объектом Date в Javascript. Давайте разберем методы, которые возвращают определенную часть от даты. Объяснять данные методы смысла нет, по их названию и примеру всё будет понятно:
<script> var date = new Date(); document.write("Current date ==> " + date +"</br>"); document.write("Year ==> " + date.getFullYear() + "<br/>"); document.write("Month ==> " + date.getMonth() + "<br/>"); document.write("Day ==> " + date.getDate() + "<br/>"); document.write("Day of week ==> " + date.getDay() + "<br/>"); document.write("Hour ==> " + date.getHours() + "<br/>"); document.write("Minutes ==> " + date.getMinutes() + "<br/>"); document.write("Seconds ==> " + date.getSeconds() + "<br/>"); document.write("Milliseconds ==> " + date.getMilliseconds() + "<br/>"); document.write("Количество миллисекунд, прошедших с начала эпохи Unix ==> " + date.getTime() + "<br />"); </script>
Обязательно наберите данный пример и проверьте его работоспособность.
Также существует те же самые методы, но показывающие дату и время по Гринвичу. Они полностью аналогичны предыдущим, за исключением того, что добавляется приставка "UTC". Приведу пример пары методов:
<script> var date = new Date(); document.write("Год ==> " + date.getUTCFullYear() + "<br/>"); document.write("Месяц ==> " + date.getUTCMonth() + "<br/>"); </script>
Если существует метод, который возвращает значения, то должен существовать метод, который и устанавливает значения. Здесь вместо get пишем set. Приведу пару примеров:
<script> var date = new Date(); date.setFullYear(2010); date.setMonth(11); document.write(date); </script>
Также можно устанавливать дату и время по Гринвичу с помощью приставки "UTC".
Метод toLocaleString() возвращает строковое представление даты для текущей локали (допустим у нас в России принято ставить день недели перед месяцем, в США же наоборот, т.е. для разных локалей этот метод вернет разное значение). Пример:
<script> var date = new Date(); document.write(date.toLocaleString()); //10.7.2014 21:09:39 (я нахожусь в России =)) </script>
Это были все основные методы по работе с датой и временем в Javascript.
В качестве домашнего задания создайте две даты и посчитайте количество полных лет между этими двумя датами. Учтите момент, чтобы вторая дата была старше первой.
В данной статье вы узнали, что такое объект Date в Javascript и как с ним работать.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.