Вредоносное ПО (malware) - это назойливые или опасные программы,...
Используйте new Date() для создания нового объекта Date содержащего текущую дату и время.
Обратите внимание, что Date() вызываемая без аргументов, эквивалентна new Date(Date.now()) .
Когда у вас есть объект даты, вы можете применить любой из нескольких доступных методов для извлечения его свойств (например, getFullYear() чтобы получить 4-значный год).
Ниже приведены некоторые общие методы даты.
Получить текущий год
var year = (new Date()).getFullYear(); console.log(year); // Sample output: 2016Получить текущий месяц
var month = (new Date()).getMonth(); console.log(month); // Sample output: 0Обратите внимание, что 0 = январь. Это потому, что месяцы варьируются от 0 до 11 , поэтому часто желательно добавить +1 к индексу.
Получить текущий день
var day = (new Date()).getDate(); console.log(day); // Sample output: 31Получить текущий час
var hours = (new Date()).getHours(); console.log(hours); // Sample output: 10Получить текущие минуты
var minutes = (new Date()).getMinutes(); console.log(minutes); // Sample output: 39Получить текущие секунды
var seconds = (new Date()).getSeconds(); console.log(second); // Sample output: 48Получить текущие миллисекунды
Чтобы получить миллисекунды (от 0 до 999) экземпляра объекта Date , используйте метод getMilliseconds .
Var milliseconds = (new Date()).getMilliseconds(); console.log(milliseconds); // Output: milliseconds right now
Преобразование текущего времени и даты в удобочитаемую строку
var now = new Date(); // convert date to a string in UTC timezone format: console.log(now.toUTCString()); // Output: Wed, 21 Jun 2017 09:13:01 GMTСтатический метод Date.now() возвращает количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC. Чтобы получить количество миллисекунд, прошедших с того времени, используя экземпляр объекта Date , используйте его метод getTime .
// get milliseconds using static method now of Date console.log(Date.now()); // get milliseconds using method getTime of Date instance console.log((new Date()).getTime());
JavaScript - Урок 11. Дата, представление и обработка
В JavaScript дата определяется количеством миллисекунд, прошедших с 1 января 1970 года.Для работы с датой и временем применяется встроенный объект Date . Этот объект не имеет свойств, но обладает несколькими методами, позволяющими устанавливать и изменять дату и время.
Объект Date создается с помощью оператороа new и конструктора - Date .
Например:
var myData=new Date();
Значением переменной myData будет текущая дата и время:
Методами объекта Date можно получать отдельно значения месяца, дня недели, часов, минут и секунд:
- getDate - возвращает число в диапазоне от 1 до 31, представляющее число месяца.
- getHours - возвращает час суток в диапазоне от 0 (полночь) до 23.
- getMinutes - возвращает минуты в диапазоне от 0 до 59.
- getSeconds - возвращает секунды в диапазоне от 0 до 59.
Javascript дата
Теперь напишем саму функцию nTime() :
function nTime(obj) { var t=new Date(); var h=t.getHours(); var m=t.getMinutes(); var s=t.getSeconds(); var result=h+":"+m+":"+s; obj.res.value=result; }
* как вы помните методы отделяются от объекта точкой, об этом мы говорили в уроке 3 * Как видите, все просто. Сначала определяем текущее время, а потом с помощью методов извлекаем из него отдельные значения часов, минут и секунд.Здесь еще хочется пояснить строку var result=h+":"+m+":"+s . Впервые мы столкнулись с необходимостью выводить в результат, как значения переменных, так и простой текст. В принципе ничего сложного: переменные пишутся как есть, текст берется в кавычки, а знак + осуществляет операцию конкатенации, т.е. их объединения.
В нашем примере остался один недочет, мы хотели, чтобы время выводилось в формате "чч:мм:сс", а сейчас оно выводится в формате "ч:м:с". Т.е., в 5 утра, время будет отображаться как "5:0:0", а хотелось бы так: "05:00:00" (что более привычно). В качестве домашнего задания можете попробовать это исправить. Например, с помощью оператора if и строкового литерала "0" (идея проста: если часов меньше 10, то в результат перед h написать "0" и так со всеми переменными).
А пока продолжим изучать методы объекта Date :
- getDay - возвращает день недели, как целое число от 0 (воскресенье) до 6 (суббота).
- getMonth - возвращает номер месяца в году, как целое число от 0 (январь) до 11 (декабрь).
- getYear
- возвращает год в виде двух последних цифр (getFullYear
- возвращает год в виде четырех цифр).
* К сожалению, начиная с 2000 года, есть проблема с отображением года в разных браузерах. Метод getYear в IE отображает полный год (вместо двух последних цифр), а FireFox вместо XX отображает 1XX (т.е. подставляет 1). Поэтому предпочтительнее использовать метод getFullYear.
Код html-страницы будет простой:
Javascript дата
Теперь напишем саму функцию tData() :
Function tData(obj) { var s; var t=new Date(); var y=t.getFullYear(); var d=t.getDate(); var mon=t.getMonth(); switch (mon) { case 0: s="января"; break; case 1: s="февраля"; break; case 2: s="марта"; break; case 3: s="апреля"; break; case 4: s="мае"; break; case 5: s="июня"; break; case 6: s="июля"; break; case 7: s="августа"; break; case 8: s="сентября"; break; case 9: s="октября"; break; case 10: s="ноября"; break; case 11: s="декабря"; break; } var result=d+" "+s+" "+y; obj.res.value=result; }
Получилось подлиннее, чем в первом примере, т.к. приходится переводить на русский язык названия месяцев.
Рассмотренные выше методы позволяют получать дату. Если же нам потребуется установить дату, то следует использовать следующие методы:
- setDate - устанавливает число месяца в диапазоне от 1 до 31.
- setHours - устанавливает час для текущего времени в диапазоне от 0 (полночь) до 23.
- setMinutes - устанавливает минуты в диапазоне от 0 до 59.
- setSeconds - устанавливает секунды в диапазоне от 0 до 59.
- setYear - устанавливает значение года.
- setMonth - устанавливает значение месяца в диапазоне от 0 (январь) до 11 (декабрь).
- setTime - устанавливает значение объекта Date и возвращает количество миллисекунд, прошедших с 1 января 1970 года.
Var t=new Date(); var y=t.setYear(2010); var d=t.setDate(6); var mon=t.setMonth(11); ...
Задать дату можно прямо в конструкторе, указав в качестве параметра строку формата "месяц, день, год часы:минуты:секунды":
Var t=new Date("Feb,10,1975 17:45:10");
Значение часов, минут и секунд можно опустить (они будут равны нулю):
Var t=new Date("Feb,10,1975");
Эту же дату можно задать с помощью чисел, перечислив через запятую год, месяц, число, часы, минуты, секунды:
Var t=new Date(75, 1, 10, 17, 45, 10);
Или же, опуская часы, минуты и секунды (они будут равны нулю):
Var t=new Date(75, 1, 10);
* Есть проблема: IE год отображать не хочет, поэтому лучше эти варианты не использовать.Вот собственно и все, вы вполне готовы самостоятельно написать сценарий, который при загрузке страницы отобразит дату, время и день ее посещения (в нормальном русском виде). Удачи!
На этом уроке мы познакомимся с объектом Date языка JavaScript и научимся его использовать на практике.
Объект Date
Объект Date представляет собой точку на оси времени и предназначен для хранения даты и времени с точностью до миллисекунды.
Объект Date можно создавать различными способами:
- Без параметров (хранит дату и время, которая была в момент создания объекта на локальном компьютере); var newDate = new Date(); alert(newDate);
- С одним числовым параметром, в этом случае дата и время задаётся как количество миллисекунд, прошедших с 1 января 1970 00:00:00 UTC; // 1 год ≈ 365*24*60*60*1000 ≈ 31536000000 мс var date1 = new Date(31536000000); alert(date1);
- С одним строковым параметром, в этом случае JavaScript пытается разобрать строку с помощью метода Date.parse , т.е. преобразовать в дату. // YYYY-MM-DDThh:mm:ss.sss //Для разделения даты и времени используется символ T var str = "2015-02-24T21:23"; var date2 = new Date(str); alert(date2); //Также можно указать часовой пояс +hh:mm или -hh:mm var str1 = "2015-02-24T22:02+03:00"; var date2 = new Date(str1); alert(date2);
- Используя множество параметров перечисленных через запятую: год (4 цифры), месяц (отсчёт ведётся с 0), день (1..31), часы (0..23), минуты (0..59), секунды (0..59), миллисекунды (0..999). Причём обязательными являются только первых 2 параметра. //1 пример: только обязательные параметры //неуказанные параметры равны: число - 01, часы - 00, минуты - 00, секунды - 00, миллисекунды - 000. var date3 = new Date(2015,01); alert(date3); //2 пример //неуказанные параметры равны: секунды - 00, миллисекунды - 000. var date4 = new Date(2015,01,24,21,23); alert(date4);
- для получения отдельных компонентов даты и времени (начинаются методы с глагола get);
- для установления даты и времени (начинаются методы с глагола set);
- для преобразования даты в строку (начинаются методы с to);
- для преобразования строки в дату: метод Date.parse .
- Методы объекта Date для получения отдельных компонентов даты и времени в местном часовом поясе:
- getFullYear() - метод, который возвращает год, состоящий из 4 чисел;
- getMonth() - метод, который возвращает месяц в числовом формате: 0..11 (0 - январь, 1-февраль, 2 март, ...,11 - декабрь).
- getDate() - метод, который возвращает число месяца: 1..31;
- getHours() - метод, который возвращает количество часов: 0..23;
- getMinutes() - метод, который возвращает количество минут: 0..59;
- getSeconds() - метод, который возвращает количество секунд: 0..59;
- getMilliseconds() - метод, который возвращает количество миллисекунд: 0..999;
"); document.write("Год: " + newDate.getFullYear() + "
"); document.write("Месяц: " + newDate.getMonth() + "
"); document.write("Число: " + newDate.getDate() + "
"); document.write("---Время---" + "
"); document.write("Часы: " + newDate.getHours() + "
"); document.write("Минуты: " + newDate.getMinutes() + "
"); document.write("Секунды: " + newDate.getSeconds() + "
"); document.write("Миллисекунды: " + newDate.getMilliseconds() + "
"); - Методы объекта Date для получения отдельных компонентов даты и времени в UTC: getUTCFullYear() , getUTCMonth() , getUTCDate() , getUTCHours() , getUTCMinutes() , getUTCSeconds() , getMilliseconds() . Данные методы аналогичны предыдущим методам, за исключением того что они возвращают дату и время в UTC.
- Метод getTime() . Он предназначен для возвращения количества миллисекунд, прошедших с 01.01.1970 00:00:00 UTC.
- Метод getTimezoneOffset() . Он предназначен для возвращения разницы в минутах между часовым поясом локального компьютера и UTC.
- Методы объекта Date для установления отдельных компонентов даты и времени в местном часовом поясе:
- setFullYear() - метод, который устанавливает год. Кроме этого, данный метод имеет ещё 2 необязательных параметра, с помощью которых Вы можете дополнительно установить месяц и число. var newDate = new Date(); //установить для newDate с помощью метода setFullYear: год - 2014. newDate.setFullYear(2014); //установить для newDate с помощью метода setFullYear: год - 2014, месяц - 08 (сентябрь, т.к. отсчёт ведётся с 0). newDate.setFullYear(2014,08); //установить для newDate с помощью метода setFullYear: год - 2014, месяц - 08 (сентябрь), число - 20. newDate.setFullYear(2014,08,20);
- setMonth() - метод, который устанавливает месяц в числовом формате: 0..11 (0 - январь, 1-февраль, 2 март, ...,11 - декабрь). Кроме этого, данный метод имеет ещё 1 необязательный параметр, с помощью которого Вы можете дополнительно установить число. var newDate = new Date(); //установить для newDate с помощью метода setMonth: месяц - 05 (июнь). newDate.setMonth(05); //установить для newDate с помощью метода setMonth: месяц - 05 (июнь), число - 15. newDate.setMonth(05,15);
- setDate() - метод, который устанавливает число. var newDate = new Date(); //установить для newDate с помощью метода setDate: число - 28. newDate.setDate(28);
- setHours() - метод, который устанавливает количество часов: 0..23. Кроме этого, данный метод имеет ещё 3 необязательных параметра, с помощью которых Вы можете дополнительно установить минуты, секунды и миллисекунды. var newDate = new Date(); //установить для newDate с помощью метода setHours: часы - 13. newDate.setHours(13); //установить для newDate с помощью метода setHours: часы - 13, минуты - 20. newDate.setHours(13,20); //установить для newDate с помощью метода setHours: часы - 13, минуты - 20, секунды - 37. newDate.setHours(13,20,37); //установить для newDate с помощью метода setHours: часы - 13, минуты - 20, секунды - 37, миллисекунды - 230. newDate.setHours(13,20,37,230);
- setMinutes() - метод, который устанавливает количество минут: 0..59. Кроме этого, данный метод имеет ещё 2 необязательных параметра, с помощью которых Вы можете дополнительно установить секунды и миллисекунды. var newDate = new Date(); //установить для newDate с помощью метода setMinutes: минуты - 37. newDate.setMinutes(37); //установить для newDate с помощью метода setMinutes: минуты - 37, секунды - 12. newDate.setMinutes(37,12); //установить для newDate с помощью метода setMinutes: минуты - 37, секунды - 12, миллисекунды - 710. newDate.setMinutes(37,12,710);
- setSeconds() - метод, который возвращает количество секунд: 0..59. Кроме этого, данный метод имеет один необязательный параметр, с помощью которого Вы можете дополнительно установить миллисекунды. var newDate = new Date(); //установить для newDate с помощью метода setSeconds: секунды - 40. newDate.setSeconds(40); //установить для newDate с помощью метода setSeconds: секунды - 40, миллисекунды - 105. newDate.setSeconds(40,105);
- setMilliseconds() - метод, который устанавливает количество миллисекунд: 0..999. var newDate = new Date(); //установить для newDate с помощью метода setMilliseconds: миллисекунды - 318. newDate.setSeconds(318);
- Методы объекта Date для установления отдельных компонентов даты и времени в UTC: setUTCFullYear() , setUTCMonth() , setUTCDate() , setUTCHours() , setUTCMinutes() , setUTCSecondes() , setUTCMilliseconds() . Данные методы аналогичны предыдущим методам, за исключением того что они устанавливают дату и время в UTC.
- Метод setTime() . Он предназначен для установления даты и времени посредством сложения или вычитания количества миллисекунд от даты 01.01.1970 00:00:00 UTC.
Примечание: Если Вам необходимо установить дату и время в UTC, то можете воспользоваться методом Date.UTC:
//1 пример var date1 = Date.UTC(2015,1,1); var date2 = new Date(date1); alert(date2.toUTCString()); //2 пример var newDate = new Date(Date.UTC(2015,1,1)); alert(newDate.toUTCString());
Методы объекта Date
Методы объекта Date можно разделить на следующие категории:
Методы для получения отдельных компонентов объекта Date
Методы для установления отдельных компонентов объекта Date
Примечание: В JavaScript некорректно установленная дата приводит не к ошибкам, а лишь к тому, что она автоматически распределяется по остальным компонентам объекта Date.
Например, при установлении даты newDate.setFullYear = new Date(2015,01,40) (т.е. 40.01.2015) ошибки не произойдёт. Число 40 распределится следующим образом: 9 февраля 2015 года (т.к. в январе 31 день, то число будет равно 9 (40-31), а месяц +1).
//Пример 1: прибавим к дате 7 дней var date1 = new Date(2015,02,26,22,03); date1.setDate(date1.getDate()+7); //Пример 2: отнимем от даты 120 секунд var date2 = new Date(2015,02,26,22,03); date2.setSeconds(date1.getSeconds()-120); //Пример 3: последнее число предыдущего месяца var date3 = new Date(2015,02,26,22,03); date3.setDate(0);
Преобразования даты в строку
В JavaScript существует огромное количество методов, предназначенных для перевода даты в строку.
Первую группу составляют методы, результат которых зависит от используемого браузера. Т.е. формат возвращаемой строки зависит от производителя браузера.
- Методы, которые преобразуют дату в строку с учётом часового пояса и языка локального компьютера.
- toLocaleString() - возвращает строку, содержащую дату и время;
- toLocaleDateString() - возвращает строку, содержащую дату;
- toLocaleTimeString() - возвращает строку, содержащую время.
- toUTCString() - метод, который возвращает строку, содержащую дату и время в UTC.
- toISOString() - метод, который возвращает строку, содержащую дату и время в формате ISO (YYYY-MM-DDTHH:mm:ss.sssZ).
"); document.write("toDateString() - " + date5.toDateString() + "
"); document.write("toTimeString() - " + date5.toTimeString() + "
"); document.write("toLocaleString() - " + date5.toLocaleString() + "
"); document.write("toLocaleDateString() - " + date5.toLocaleDateString() + "
"); document.write("toLocaleTimeString() - " + date5.toLocaleTimeString() + "
"); document.write("toUTCString() - " + date5.toUTCString() + "
"); document.write("toISOString() - " + date5.toISOString() + "
");
Метод для преобразования строки в дату
JavaScript для преобразования строки в дату использует метод Date.parse() . Этот метод может преобразовать строку, если она выполнена в соответствии со стандартом RFC2822 или ISO 8601.
В этом уроке рассмотрим стандарт ISO 8601, в котором строка должна иметь следующий формат: YYYY-MM-DDThh:mm:ss.sssZ .
- YYYY – год, состоящий из 4 цифр;
- MM – месяц, состоящий из 2 цифр (01 = Январь, 02 = Февраль, и т.д.);
- DD – день месяца, состоящий из 2 цифр (01..31);
- T – символ для разделения даты и времени;
- hh – количество часов (00..23);
- mm - количество минут (00..59);
- ss - количество секунд (00..59);
- sss - количество миллисекунд (0..999);
- Z - символ, который означает, что время задаётся в формате UTC. Если Вам необходимо вместо UTC установить часовой пояс, то букву " Z " следует заменить значением +hh:mm или -hh.mm .
Если строка, содержащая дату и время, задана не в формате RFC2822 или ISO 8601, то метод JavaScript Date.parse() всё равно может выполнить её преобразование, но результат в этом случае могут оказаться непредсказуемым.
Объект Date позволяет работать с датами и временем. Для создания нового объекта Date используется следующий синтаксис:
New Date()
Даты хранятся в нём как количество миллисекунд, прошедших с полуночи 1 января 1970 г. согласно единому всемирному времени (UTC). Благодаря такому формату с помощью Date можно точно представлять даты, отстоящие от 1 января 1970 г. на 285616 лет.
Если конструктор Date вызывается без аргументов, создаётся объект с текущими значениями даты и времени. Для создания объекта Date с определенной датой или временем, необходимо будет передать один из четырех возможных параметров:
- миллисекунды: значение должно быть числом миллисекунд с 01.01.1970 var birthDate = new Date(8298400000); document.write(birthDate);
- строка с датой: любая дата в формате поддерживаемом методом parse() var birthDate = new Date("April 16, 1975"); document.write(birthDate);
- год, месяц, день
var birthDate = new Date(1975, 4, 28);
document.write(birthDate);
Обратите внимание, что число 4 соответствует маю месяцу. Это значит, что январю соответствует число 0. Аналогичным образом вычисляются и дни, только нулю в этом случае соответствует воскресенье.
- год, месяц, день, час, минуты, секунды, миллисекунды
При работе с объектом Date важно помнить, что вычисления выполняются с использованием единого всемирного времени (UTC), несмотря на то, что ваш компьютер может отображать время в соответствии с вашей временной зоной.
Методы
Метод | Описание |
---|---|
getDate() | Возвращает день месяца (от 1 до 31) для указанной даты по местному времени. |
getDay() | Возвращает день недели (от 0 до 6; 0 = воскресенье, 1 = понедельник и т.д.) для указанной даты по местному времени.. |
getFullYear() | Возвращает год (четыре цифры). |
getHours() | Возвращает час (от 0 до 23). |
getMilliseconds() | Возвращает миллисекунды (от 0 до 999). |
getMinutes() | Возвращает минуты (от 0 до 59). |
getMonth() | Возвращает месяц (от 0 до 11; 0 = январь, 1 = февраль и т.д.). |
getSeconds() | Возвращает секунды (от 0 до 59). |
getTime() | Возвращает количество миллисекунд, прошедших с полуночи 01.01.1970. |
getTimezoneOffset() | Возвращает разницу во времени между временем UTC и местным временем, в минутах. |
getUTCDate() | Возвращает день месяца по всемирному времени (от 1 до 31). |
getUTCDay() | Возвращает день недели по всемирному времени (от 0 до 6). |
getUTCFullYear() | Возвращает год по всемирному времени (четыре цифры). |
getUTCHours() | Возвращает час по всемирному времени (от 0 до 23). |
getUTCMilliseconds() | Возвращает миллисекунды по всемирному времени (от 0 до 999). |
getUTCMinutes() | Возвращает минуты по всемирному времени (от 0 до 59). |
getUTCMonth() | Возвращает месяц по всемирному времени (от 0 до 11). |
getUTCSeconds() | Возвращает секунды по всемирному времени (от 0 до 59). |
parse() | Анализирует строку даты (например, "21 мая 1992 года") и возвращает строку со значением даты, которая содержит число в миллисекундах с 1 января 1970 00:00:00. |
setDate() | Устанавливает день месяца для указанной даты по местному времени (от 1 до 31). |
setFullYear() | Устанавливает год (четыре цифры). |
setHours() | Устанавливает часы для указанной даты по местному времени (от 0 до 23). |
setMilliseconds() | Устанавливает миллисекунды для указанной даты по местному времени. |
setMinutes() | Устанавливает минуты (от 0 до 59). |
setMonth() | Устанавливает месяц (от 0 до 11). |
setSeconds() | Устанавливает секунды (от 0 до 59). |
setTime() | Устанавливает дату в миллисекундах после (или до) 01.01.1970. |
setUTCDate() | Задает день месяца. |
setUTCFullYear() | Устанавливает год по всемирному времени (четыре цифры). |
setUTCHours() | Устанавливает час для указанной даты по всемирному времени. |
setUTCMilliseconds() | Задает миллисекунды для указанной даты по всемирному времени. |
setUTCMinutes() | Устанавливает минуты для указанной даты по всемирному времени. |
setUTCMonth() | Задает месяц для указанной даты по всемирному времени. |
setUTCSeconds() | Устанавливает секунды для указанной даты по всемирному времени. |
toDateString() | |
toISOString() | Преобразует дату в строку, используя стандарт ISO 8601. |
toJSON() | Возвращает дату в виде строки, отформатированную как дата JSON. |
toLocaleDateString() | |
toLocaleTimeString() | Возвращает часть даты в виде строки, с представлением даты на основе параметров системы. |
toLocaleString() | Возвращает дату в виде строки, с представлением даты на основе параметров системы. |
toString() | Возвращает строку, представляющую указанный объект Date. |
toTimeString() | Возвращает часть даты в виде строки. |
toUTCString() | Преобразует дату в строку, используя часовой пояс UTC. |
UTC() | Принимает те же параметры, что и длинная форма конструктора (т.е. 2-7) и возвращает количество миллисекунд с 1 января 1970, 00:00:00 UTC. |
valueOf() | Возвращает примитивное значение объекта Date. |