Object Date

В JavaScript, благодаря встроенному объекту Date(), имеется возможность получить текущую дату и время. Кроме того, объект Date() позволяет выполнять различные вычисления с датой и временем и осуществлять преобразование в другие типы данных.

Дата измеряется в миллисекундах, прошедших после полуночи 01 января 1970 года по Гринвичу/UTC. Один день состоит из 86,400,000 миллисекунд. Объект Date имеет диапазон от -100,000,000 до 100,000,000 дней относительно 01 января 1970 года по Что такое UTC простыми словами: отличие от GMT, смещения и настройка на хостинге. Объект Date поддерживает несколько UTC- методов (универсальных), а также методы работы с локальным временем. UTC, известное также как Greenwich Mean Time (GMT)/время по Гринвичу, ссылается на время, установленное стандартом World Time Standard. Локальное время это время, известное компьютеру, на котором выполняется JavaScript.
Даты до 1970 года недопустимы.

Создание переменной типа Date() происходит традиционно при помощи оператора new:

var now = new Date();

Если Вы не задаёте никаких аргументов, конструктор создаёт объект Date для текущей даты и времени в соответствии с локальным/системным временем. Существуют еще два варианта использования конструктора Date():

var now = new Date(dateValue);

В этом случае созданный объект Date будет инициализирован нужной датой, переданной конструктору. Если Вы задаёте несколько аргументов, но не все, отсутствующие аргументы устанавливаются в 0. DateValue может иметь числовой или строковый тип данных. Если аргумент dateValue имеет числовой тип, он указывает количество миллисекунд между необходимой датой и полночью 1 января 1970 года. Если аргумент dateValue имеет строковый тип, он указывает необходимые дату и время в следующем формате: "Jan 5, 1996 08:47:00". Кроме того, действуют следующие правила записи:

сокращенная форма записи даты производится при помощи разделителя "/" или "-" в формате "месяц/день/год", например: "03/09/2004" или "03-09-2004". время может быть записано в 24 или 12 часовом формате. Например, следующие записи эквивалентны: "02:30 PM" и "14:30". А следующая запись вызовет ошибку: "14:30 PM" Следующий способ использования конструктора объекта Date является намного более простым и понятным:

var now = new Date(year, month, date[, hour[, min[, sec[, msec]]]]);

где

year - год 
month - месяц 
date - дата (число) 
hour - часы (необязательно) 
min - минуты (необязательно) 
sec - секунды (необязательно) 
msec - миллисекунды (необязательно)

Ниже приводятся несколько примеров использования конструктора Date:

var d1 = new Date(); // текущие дата и время 

var d2 = new Date("03/09/2004"); // полночь 9 мая 2004 года 
var d3 = new Date("03/09/2004 13:30"); // 13:30 9 мая 2004 года 

var d4 = new Date(2004, 3, 9); // полночь 9 мая 2004 года 
var d5 = new Date(2004, 3, 9, 13, 30); // 13:30 9 мая 2004 года

Пример. Вывод локального и UTC времени.

Время между клиентом и сервером нужно всегда передавать в Что такое UTC простыми словами: отличие от GMT, смещения и настройка на хостинге.

Под локальным временем подразумевается системное время вашего компьютера. Различия с UTC возникает если у вас например, Восточноевропейское время (Eastern European Time) EET, которое эквивалентно часовому поясу UTC+2.

  • Скрипт выводит в первой строчке локальной время, во второй UTC.
    <script>
    var d = new Date();
    var gmtHours = -d.getTimezoneOffset()/60;
    var p = d.getUTCFullYear() + '-' + (d.getUTCMonth() + 1) + '-' + d.getUTCDate() + ' '+
    d.getUTCHours() + ':' + d.getUTCMinutes() + ':' + d.getUTCSeconds()+' '+'GMT '+gmtHours;
     
    alert(d+'\n'+p);
    </script>

    Результат:

    Sat Jan 14 2012 20:49:16 GMT+0200 (EET)
    2012-1-14 18:49:16 GMT 2

Запись даты и времени вида "2012-1-14 18:49:16" соответствует международному стандарту ISO 8601.

Пример. В какой день вы родились?

У пользователя запрашивается дата в формате 'месяц/день/год'. Полученная строка используется для инициализации объекта Date нужной датой. Когда нужная дата установлена, воспользуемся методом getDay() для получения номера дня недели и используем его для получения дня недели из массива days.

<html>
    <head>
    </head>
    <body>
	<script type="text/javascript">
		var days = new Array ("воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота");
		var dateStr = prompt("Введите дату в формате 'месяц/день/год':", "12/31/2000");
		var d = new Date(dateStr);
		alert ("Интересующий вас день - "+days[d.getDay()]);
	</script>
    </body>
</html>

Пример. Преобразовать текущую дату в формат "yy-mm-dd"

<script type="text/javascript">
                var dn = new Date();
                var m= dn.getUTCMonth() + 1;
                var m10 = (m>1 && m<10) ? '0'+m : m;
                var d= dn.getUTCDate();
                var d10 = (d>1 && d<10) ? '0'+d : d;
                var d1now = dn.getUTCFullYear() + '-' + m10 + '-' + d10;
                alert(d1now);
</script>

Рекомендуемые обзоры инструментов

Обзор и отзывы об антидетект браузере Aurorium AI.
Aurorium AI: Обзор и отзывы

Инновационный браузер с поддержкой ИИ

Обзор и отзывы об антидетект браузере Undetectable.
Undetectable Browser: Честный обзор

Бесконечные профили для арбитража

Антидетект браузер Vision: обзор и реальные отзывы.
Браузер Vision: Реальные отзывы

Надежное решение для мультиаккаунтинга

Обзор и отзывы об антидектет браузере Dolphin.
Dolphin {anty}: Обзор функционала

Лидер рынка для арбитражников

📌 Умный подбор сервера: Официальный инструмент проекта DIEG — агрегатор DIEG Finder. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти и сравнить по параметрам подходящий VPS/VDS сервер для любых задач хостинга.
📌 Инфраструктура для разработчиков: Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов читайте здесь.