В JavaScript, благодаря встроенному объекту Date(), имеется возможность получить текущую дату и время. Кроме того, объект Date() позволяет выполнять различные вычисления с датой и временем и осуществлять преобразование в другие типы данных.
Создание переменной типа 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 возникает если у вас например, Восточноевропейское время (Eastern European Time) EET, которое эквивалентно часовому поясу UTC+2.
<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.
<body> <script type="text/javascript"> var t = new Date(); document.write(t.getUTCHours() + ':' + t.getUTCMinutes() + ':' + t.getUTCSeconds()); </script> </body>
Результат: 17.5.13
У пользователя запрашивается дата в формате 'месяц/день/год'. Полученная строка используется для инициализации объекта 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>
<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>