Javascript.RU

Date

Создание

dateObj = new Date()
dateObj = new Date(dateVal)
dateObj = new Date(year, month, date[, hours, minutes, seconds, ms] )

Аргументы

dateVal
  • Если параметр является числовым, то он интерпретируется как количество миллисекунд от 1-Янв-1970 00:00.
  • Если строкой, то она разбирается и интерпретируется как дата по стандартным правилам Date.parse.
year
Год в формате YYYY.
month
Месяц от 0 (Янв) до 11 (Дек).
date
День месяца от 1 до 31.
hours
Параметр должен быть указан, если указан параметр minutes. Устанавливает кол-во часов от 0 до 23.
minutes
Параметр должен быть указан, если указан параметр seconds. Устанавливает количество минут: от 0 до 59.
seconds
Параметр должен быть указан, если указан параметр ms. Устанавливает количество секунд: от 0 до 59.
ms
Количество миллисекунд: от 0 до 999.

Дата измеряется в миллисекундах, начиная от полуночи 01 января 1970 года GMT+0. День содержит 86,400,000 миллисекунд.

Объект Date ведет себя одинаково на всех платформах.

Date поддерживает как методы для работы в зоне UTC (GMT+0), так и методы для работы с местным временем.
Местное время - это то, которое установлено на компьютере, на котором выполняется яваскрипт.


Описание, примеры

Если конструктор запущен без аргументов, то возвращается текущая дата.

Пример: получить текущую дату
var today = new Date()

При вызове с одним аргументом - строкой, строка разбирается и интерпретируется как дата, так же, как и в методе Date.parse.

Пример: создать дату из строки
var date = new Date("21 May 1958 10:12") // используется редко

При объявлении с несколькими аргументами, отсутствующие аргументы автоматически считаются равными 0.

Пример: объявление даты с несколькими аргументами
new Date(1)
// Thu Jan 01 1970 03:00:00 GMT+0300 (Russian Standard Time)
new Date(1,2)
// Fri Mar 01 1901 00:00:00 GMT+0300 (Russian Standard Time)
new Date(1,2,3)
// Sun Mar 03 1901 00:00:00 GMT+0300 (Russian Standard Time)
new Date(1,2,3,4)
// Sun Mar 03 1901 04:00:00 GMT+0300 (Russian Standard Time)
new Date(1,2,3,4,5)
//Sun Mar 03 1901 04:05:00 GMT+0300 (Russian Standard Time)
new Date(1,2,3,4,5,6)
//Sun Mar 03 1901 04:05:06 GMT+0300 (Russian Standard Time)

Методы

Date.parse
toLocaleString
getDate
getDay
getFullYear
getMilliseconds
getMinutes
getSeconds
getTimezoneOffset
getUTCDate
getUTCDay
getUTCHours
getHours
getUTCMilliseconds
getUTCMinutes
getUTCSeconds
setSeconds
setFullYear
setMilliseconds
setTime
setYear
setDate
setUTCDate
setUTCHours
setHours
setUTCMilliseconds
setUTCMinutes
setMinutes
setMonth
setUTCSeconds
setUTCFullYear
setUTCMonth
toGMTString
toLocaleFormat
toLocaleTimeString
toLocaleDateString
toString
toTimeString
toDateString
toUTCString
getUTCFullYear
getMonth
Date.UTC
getUTCMonth
getTime
valueOf
getYear

См. также


Автор: Гость (не зарегистрирован), дата: 12 апреля, 2010 - 08:47
#permalink

Спасибо за справку


Автор: Гость (не зарегистрирован), дата: 28 мая, 2010 - 14:34
#permalink

А что с методом getVarDate?


Автор: eslexa (не зарегистрирован), дата: 10 сентября, 2010 - 10:16
#permalink

Привет автору. Пожелание: хотелось бы, чтобы в столбце методов было рядом с каждым методом его кратенькое описание - типа для чего он нужен. Это для удобства


Автор: eslexa (не зарегистрирован), дата: 10 сентября, 2010 - 10:16
#permalink

Привет автору. Пожелание: хотелось бы, чтобы в столбце методов было рядом с каждым методом его кратенькое описание - типа для чего он нужен. Это для удобства


Автор: Гость (не зарегистрирован), дата: 8 октября, 2010 - 14:26
#permalink

+1 увы, юзабилити этого сайта обратно пропорционально количеству полезной информации


Автор: Гость (не зарегистрирован), дата: 3 октября, 2011 - 10:52
#permalink

Заплатите автору, и будет вам и юзабилити, и сверхбыстрая закачка всей нужной информацию прямо в ваш мозг!


Автор: Ilia (не зарегистрирован), дата: 5 ноября, 2010 - 11:41
#permalink

Третий параметр в dateObj = new Date(year, month, date, ...) лучше назвать day.


Автор: linl (не зарегистрирован), дата: 25 апреля, 2011 - 17:34
#permalink

Day - день недели, а Date - день месяца )


Автор: Ganster41 (не зарегистрирован), дата: 19 ноября, 2010 - 13:48
#permalink

>Объект Date ведет себя одинаково на всех платформах.

Увы, но нет. Правила Date.parse интерпретируются по-разному(Safari может распарсить краткую строку только в формате m/d/Y, даже использование '-' в качестве разделителя вызовет ошибку. Тогда как остальные браузеры(по крайней мере IE, Firefox, Chrome) понимают даже формат MySQL(Y-m-d).


Автор: Crusader, дата: 17 января, 2011 - 20:00
#permalink

Можно как-то проверить строку - является ли она датой?
я так понимаю:

isNaN(Date.parse(dateVal))

Автор: komisvadim, дата: 20 февраля, 2011 - 14:45
#permalink

еще вопрос не работает подсчет времени жизни сайта
d0 = new Date('September 30, 2008');
d1 = new Date();
dt = (d1.getTime() - d0.getTime()) / (1000*60*60*24);
выдает
Line 3 Error: Could not convert variant of type (String) into type (Double)
как преобразовать типы?


Автор: Гость (не зарегистрирован), дата: 27 февраля, 2011 - 23:03
#permalink

Скорее всего достаточно заменить

d0 = new Date('September 30, 2008');

на

d0 = new Date(2008, 8, 30);

Автор: Гость (не зарегистрирован), дата: 18 апреля, 2011 - 08:53
#permalink

в разделе аргументы, этой статьи написано: "Количество миллисекунд: от 0 до 999."
почему 999 ??


Автор: Гость (не зарегистрирован), дата: 20 апреля, 2011 - 10:37
#permalink

Потому что 1000 миллисекунд - это уже следующая секунда


Автор: Эшва (не зарегистрирован), дата: 31 июля, 2011 - 16:27
#permalink

Вот пр... странные люди. В конструкторе номер месяца сделали 0-based. Зачем???
Короче попался на эту "странность".


Автор: Гость (не зарегистрирован), дата: 3 августа, 2011 - 11:58
#permalink

Подскажите, как вычислить предыдущую дату? Скажем пользователь ввел 25.05.2011, мне нужно получить 24.05.2011. Как это сделать?


Автор: Гость (не зарегистрирован), дата: 11 августа, 2011 - 13:36
#permalink

а можно как нибудь сравнивать две даты, с помощью привычных <, >.. или, на худой конец, есть ли какие-нибудь методы для этого


Автор: B@rmaley.e><e, дата: 12 августа, 2011 - 14:55
#permalink

А проверить не судьба?

alert([new Date(2008, 3, 1) > new Date(2009, 3, 1), new Date(2008, 3, 1) > new Date(2007, 3, 1)])

Автор: Гость (не зарегистрирован), дата: 14 октября, 2011 - 11:23
#permalink

Подскажите пожалуста, как можно создать дату с задоной TimeZone


Автор: Гость (не зарегистрирован), дата: 5 июня, 2012 - 18:40
#permalink

Долго втыкал, что в данном классе месяцы нумеруются с 0 , т.е. Июнь будет не 6 месяц, как у людей а пятый ...


Автор: Гость (не зарегистрирован), дата: 8 июня, 2012 - 17:45
#permalink

нет, он будет шестой, как и везде, но номер его 5


Автор: Оля21 (не зарегистрирован), дата: 19 августа, 2012 - 00:24
#permalink

Подскажите, пожалуйста, как правильно вычислить сколько лет прошло между сегодняшней и, например 21.09.2006
now = new Date();
var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
var LisBirthday = new Date(2006, 8,21);
var ago = new Date();
var d = today - LisBirthday;
ago.setTime(d);
var x = ago.getMonth();
var y = ago.getDate();
var a = ago.getFullYear();
Количество лет возвращает 1975


Автор: Гость (не зарегистрирован), дата: 3 декабря, 2012 - 19:22
#permalink
$db = mysql_connect("localhost","user","1234");
if ($db) {
echo "YES";
} else {
echo "NO";
}

Автор: Bafla, дата: 4 февраля, 2013 - 22:39
#permalink

Наверно это даст более полное понимание:

current_date = new Date()
cmm = current_date.getSeconds()
alert (cmm)

getSeconds() можно заменить getMinutes(),getHours(),getMonth() и т.д.


Автор: Bafla, дата: 4 февраля, 2013 - 22:43
#permalink

Вот как таймер, учитывающий время обработки страницы на клиенте может кто подскажет


Автор: Гость (не зарегистрирован), дата: 17 ноября, 2014 - 13:42
#permalink

Я вчера случайно три литра колы


Автор: Гость (не зарегистрирован), дата: 24 декабря, 2014 - 09:13
#permalink

Могли бы добавить описание и как-нибудь упорядочить их.


Автор: Deff, дата: 26 ноября, 2015 - 08:17
#permalink

Удобно в этот объект:
dateObj = new Date(year, month, date[, hours, minutes, seconds, ms]

Засовывать не цифры, а строку[хотя в статье указано про Date.parse.]:

var str = "2015,11,25";
alert(new Date(str));

то месяц(month) - отображается естественно:
month
Месяц от 1 (Янв) до 12 (Дек).
================
Вариант для Записи Число.Меcяц.Год:

var str = "25.11.2015";
str = str.replace(/^(\d+)\.(\d{2})\.(\d{4})/,'$3,$2,$1');
alert(new Date(str));

Автор: Гость (не зарегистрирован), дата: 11 мая, 2016 - 14:53
#permalink

Подскажите с проблемой работаю с гугл таблицами , создал скрипт
new Date() выводит в ячейку к примеру "27.04.2016 14:18:25"
а нужно только "27.04.2016"
Как это можно реализовать
пробовал
new Date(yyyy-mm-dd)
new Date(yyyy/mm/dd)...
new Date(year, month, date[, hours, minutes, seconds, ms])
new Date(now.getFullYear(), now.getMonth(), now.getDate())
... ничего не помогает


Автор: Гость (не зарегистрирован), дата: 11 мая, 2016 - 17:16
#permalink

Справился так:
var today = new Date(); // сегодняшнеяя дата и время
var yr = new Date(today.getFullYear(), today.getMonth(), today.getDate()); //оставляем только год,мес,день
if ( idCol == 20 ) {
sheetR.getRange(idRow, idCol + 1).setValue(yr);


Автор: Гость (не зарегистрирован), дата: 17 мая, 2016 - 18:30
#permalink

Здраствуйте пожалуйста подскажите я в javascript полный ноль есть код Js

getPassedTime = (function () {
	var
    nowDate = new Date( ),
    words = [
		[365.25, ['год', 'года', 'лет']],
		[30, ['месяц', 'месяца', 'месяцев']],
		[1, ['день', 'дня', 'дней']]
    ],
    getRightWord = function( num, wordsArr ) {
		var decNum = num % 10;
		if (num >= 100) num = num % 100;
		if (num < 21 && num >= 5) return wordsArr[2];
		if (decNum >= 5) return wordsArr[2]
		if (decNum > 1 && decNum < 5) return wordsArr[1];
		return wordsArr[0]
    };
	return function (date) {
    var
		x, difference,
		result = '',
		days = (nowDate - date) / 1000 / 60 / 60 / 24;
		for (x = 0; x < words.length; x++) {
			if (days >= words[x][0]) {
				difference = days;
				days = days % words[x][0];
				difference = (difference - days) / words[x][0];
				result += (result ? ' ' : '') + parseInt(difference) + ' ' + getRightWord( difference, words[x][1] )
			}
		}
    return result
	}
})()
document.write(getPassedTime(new Date('2016/2/16')));

Как вывести ответ из этого кода типа "4 года 3 месяца 1 день"


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
3 + 7 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum