Javascript объект date
Содержание:
Exemples
Les exemples qui suivent illustrent différentes méthodes permettant de créer des dates JavaScript :
Note : L’analyse de chaîne de caractères représentant des dates avec le constructeur (ou qui est équivalent) est fortement déconseillée en raison des différences de comportement existant entre les navigateurs.
Afin de créer et de manipuler des dates sur les années à de notre ère, on doit utiliser les méthodes and .
Dans les exemples suivants, on illustre comment calculer le temps écoulé entre deux dates JavaScript en millisecondes.
En raison de durées différentes pour les jours (heure d’été / heure d’hiver), les mois et les années, il faudra faire attention et étudier le sujet avant d’exprimer des durées en unités supérieures à des heures / minutes / secondes.
Note : Pour les navigateurs qui prennent en charge l’API Web Performance (en-US), la méthode peut fournir un outil de mesure des durées écoulées plus fiable et précis que .
Dans ce cas, on renvoie un entier et c’est pour ça qu’on utilise . Par ailleurs, on n’utilise pas afin d’avoir le nombre de secondes effectivement écoulées.
Объект Number
У этого встроенного объекта есть свойства для целочисленных констант, таких как максимальное число, не-число и бесконечность. Вы не можете изменить значения этих свойств, и вы должны использовать их следующим образом:
Как видно из примера выше, для получения перечисленных значений, нужно обращаться к свойствам предопределённого глобального объекта . Тогда как у экземпляра этого объекта, созданного вами при работе программы, этих свойств не будет.
В следующей таблице приведён список свойств объекта .
Свойство | Описание |
---|---|
Наибольшее число из возможных для представления | |
Наименьшее число из возможных для представления | |
Специальное «Не числовое» («not a number») значение | |
Специальное значение «Минус бесконечность»; возвращается при переполнении | |
Специальное значение «Плюс бесконечность»; возвращается при переполнении | |
Разница между единицей и наименьшим значением, большим единицы, которое может быть представлено типом . | |
Минимальное целое, безопасное число в JavaScript. | |
Максимальное целое, безопасное число в JavaScript. |
Метод | Описание |
---|---|
Принимает строку как аргумент, и возвращает числовое значение с плавающей точкой, которое удалось распознать. Тоже самое что и глобальная функция . |
|
Принимает строку как аргумент, и возвращает целочисленное значение в заданной системе исчисления, которое удалось распознать. Тоже самое что и глобальная функция . |
|
Определяет, является ли число, переданное в качестве аргумента, конечным. | |
Определяет, является ли число, переданное в качестве аргумента, целым. | |
Определяет, является ли число, переданное в качестве аргумента, (не числом). Аналогичный, но более надёжный метод чем глобальная функция . | |
Определяет, является ли .число, переданное в качестве аргумента, целым и безопасным. |
предоставляет ряд методов, для получения значения числа в различных форматах. В следующей таблице перечислены методы, доступные через .
Метод | Описание |
---|---|
Возвращает строку, представляющую число в экспоненциальном представлении. | |
Возвращает строку, представляющую число с заданным количеством разрядов после запятой. | |
Возвращает строку, представляющую число с указанной точностью. |
Объект Date
JavaScript не имеет отдельного типа данных для хранения дат. Однако, вы можете использовать объект и его методы для работы с датами и временном в вашем приложении. Объект имеет большое количество методов для записи, чтения и оперирования датой и временем, а свойств не имеет ни одного.
JavaScript оперирует датами во многом аналогично языку Java. Для работы с датой эти два языка имеют множество одинаковых методов, и оба они хранят даты как количество миллисекунд, прошедших с 00:00:00 1 Января 1970 года.
Период значений, которые может принимать Data, простирается от -100 000 000 до100 000 000 дней, относительно 1 Января 1970 года.
Чтобы создать свой экземпляр объекта :
где это имя переменной, которой будет присвоено созданное значение с типом ; вместо этой переменной, присвоить созданное значение можно как свойство, любому существующему объекту.
Вызов как функции, без ключевого слова возвращает текущую дату и время в виде текстовой строки.
Содержимым блока в коде представленном выше, могут выступать любая из следующих конструкций:
- Пусто: создаёт текущую дату и время. Пример: .
- Текстовая строка, содержащая дату и время в следующем формате: «Месяц день, год часы:минуты:секунды». Например: . Если не указать секунды, минуты или часы, то их значение будет принято за 0.
- Набор целочисленных значений для года, месяца и дня. Например: .
- Набор целочисленных значений для года, месяца, дня, часов, минут и секунд. Например: .
new Date().toLocaleString('ru', { day: 'numeric', month: 'long', year: 'numeric' }); // текущая дата в формате: '10 января 2019 г.'
Методы объекта для работы с датой и временем делятся на следующие категории:
- «set» методы, служат для установки параметров объекта .
- «get» методы, служат для получения параметров объекта .
- «to» методы, служат для получения значения объекта в текстовом виде.
- «parse» и UTC методы, служат для распознавания дат и времени из текстового формата.
При помощи методов групп «get» и»set», вы можете получить и установить значения секунд, минут, часов, дня месяца, дня недели, месяца и года по отдельности. Отдельно выделим метод , который возвращает день недели, однако соответствующего ему метода не существует, потому-что день недели высчитывается автоматически. Все эти методы используют в своей работе целочисленные значения по следующим правилам:
- Секунды и минуты: от 0 до 59
- Часы: от 0 до 23
- Дни недели: от 0 (Воскресенье) до 6 (Суббота)
- Дни месяца: от 1 до 31
- Месяцы: от 0 (Январь) до 11 (Декабрь)
- Год: год относительно 1900 года.
Например, предположим, что вы определили дату следующим образом:
Тогда вернёт 11, а вернёт 1995.
Методы и полезны при сравнении дат. Метод возвращает количество миллисекунд, прошедших с 00:00:00 1 Января, 1970 года.
Для примера рассмотрим следующий код, показывающий количество дней оставшихся до конца текущего года:
Этот пример создаёт объект названный . Затем, создаётся вспомогательный объект, названный которому устанавливаются значения, указывающие на конец года. После этого, при помощи рассчитанного количества миллисекунд в сутках, вычисляется количество дней между и , При этом используются метод и округление, для получения количества полных дней.
Метод полезен для присвоения значений существующим объектам из текстового формата. Например, следующий код использует методы и чтобы установить значение переменной :
В следующем примере приведена функция
Первым делом, функция JSClock создаёт новый объект , названный ; так как объект создаётся баз параметров, переменная содержит текущую дату и время. Затем вызываются методы , и , чтобы установить значения переменным , и .
Следующие четыре выражения строят текстовую строку на основе time. Первое из них создаёт переменную , присваивая ей значение при помощи условия; Если больше чем 12, то (), иначе просто В случае же, когда равно 0, берётся фиксированное значение «12».
Следующее выражение приращивает минуты к переменной . Если количество минут меньше 10, то условное выражение добавляет строку с двоеточием и заполняющим нулём, иначе, просто строку с двоеточием. Секунды приращиваются к переменной тем же путём.
В завершение всего, последнее условное выражение добавляет строку «P.M.» к переменной если равно или больше 12, иначе, добавляется строка «A.M.».
- « Предыдущая статья
- Следующая статья »
Méthodes statiques
- Renvoie la valeur numérique correspondant au moment présent sous la forme du nombre de millisecondes écoulées depuis le premier janvier 1970 00:00:00 UTC (les secondes intercalaires (leap seconds) sont ignorées).
- Analyse la représentation textuelle d’une date et renvoie le nombre de millisecondes écoulées entre cette date et le premier janvier 1970, 00:00:00 UTC (les secondes intercalaires (leap seconds) sont ignorées).
Note : L’analyse de chaînes de caractères à l’aide de est fortement déconseillée en raison des incohérences qui existent entre les navigateurs.
- Accepte les mêmes paramètres que la forme longue du constructeur (c’est-à-dire entre 2 et 7) et renvoie le nombre de millisecondes entre cette date et le premier janvier 1970, 00:00:00 UTC (les secondes intercalaires (leap seconds) sont ignorées).
Перевод строки в Date
- 4 цифры для года (yyyy);
- 2 цифры для месяца (ММ);
- 2 цифры для дня (dd);
- 2 цифры для часов в 24-часовом формате (HH);
- 2 цифры для минут (mm);
- 2 цифры для секунд (ss).
SimpleDateFormat
Символ | Описание | Пример |
---|---|---|
G | эра (в английской локализации — AD и BC) | н.э. |
y | год (4-х значное число) | 2020 |
yy | год (последние 2 цифры) | 20 |
yyyy | год (4-х значное число) | 2020 |
M | номер месяца (без лидирующих нулей) | 8 |
MM | номер месяца (с лидирующими нулями, если порядковый номер месяца < 10) | 04 |
MMM | трехбуквенное сокращение месяца (в соответствии с локализацией) | янв |
MMMM | полное название месяца | Июнь |
w | неделя в году (без лидирующих нулей) | 4 |
ww | неделя в году (с лидирующими нулями) | 04 |
W | неделя в месяце (без лидирующих нулей) | 3 |
WW | неделя в месяце (с лидирующим нулем) | 03 |
D | день в году | 67 |
d | день месяца (без лидирующих нулей) | 9 |
dd | день месяца (с лидирующими нулями) | 09 |
F | день недели в месяце (без лидирующих нулей) | 9 |
FF | день недели в месяце (с лидирующими нулями) | 09 |
E | день недели (сокращение) | Вт |
EEEE | день недели (полностью) | пятница |
u | номер дня недели (без лидирующих нулей) | 5 |
uu | номер дня недели (с лидирующими нулями) | 05 |
a | маркер AM/PM | AM |
H | часы в 24-часовом формате без лидирующих нулей | 6 |
HH | часы в 24-часовом формате с лидирующим нулем | 06 |
k | количество часов в 24-часовом формате | 18 |
K | количество часов в 12-часовом формате | 6 |
h | время в 12-часовом формате без лидирующих нулей | 6 |
hh | время в 12-часовом формате с лидирующим нулем | 06 |
m | минуты без лидирующих нулей | 32 |
mm | минуты с лидирующим нулем | 32 |
s | секунды без лидирующих нулей | 11 |
ss | секунды с лидирующим нулем | 11 |
S | миллисекунды | 297 |
z | часовой пояс | EET |
Z | часовой пояс в формате RFC 822 | 300 |
Шаблон | Пример |
---|---|
dd-MM-YYYY | 01-11-2020 |
yyyy-MM-dd | 2019-10-01 |
HH:mm:ss.SSS | 23:59.59.999 |
yyyy-MM-dd HH:mm:ss | 2018-11-30 03:09:02 |
yyyy-MM-dd HH:mm:ss.SSS | 2016-03-01 01:20:47.999 |
yyyy-MM-dd HH:mm:ss.SSS Z | 2013-13-13 23:59:59.999 +0100 |
SimpleDateFormatjava string to dateSimpleDateFormat
-
Создаем строку, с которой нужно задать дату:
-
Создаем новый объект SimpleDateFormat с шаблоном, который совпадает с тем, что у нас в строке (иначе распарсить не получится):
Как вы видите, у нас тут появился аргумент Locale. Если же мы его опустим, он будет использовать значение Locale по умолчанию, которое не всегда является английским.
Если языковой стандарт не совпадает с входной строкой, то строковые данные, привязанные к языку, как у нас Mon или April, не будут распознаны и вызовут падение — java.text.ParseException, даже в том случае когда шаблон подходит.
Тем не менее, можно не указывать формат, если у нас используется шаблон, который не привязан к языку. Как пример — yyyy-MM-dd HH:mm:ss
-
Создаём дату с помощью форматтера, который в свою очередь парсит её из входной строки:
Вывод в консоль:
Хммм….Но формат-то уже не тот!
Чтобы сделать тот же формат, вновь используем форматтер:
Вывод в консоль:
JavaScript
JS Array
concat()
constructor
copyWithin()
entries()
every()
fill()
filter()
find()
findIndex()
forEach()
from()
includes()
indexOf()
isArray()
join()
keys()
length
lastIndexOf()
map()
pop()
prototype
push()
reduce()
reduceRight()
reverse()
shift()
slice()
some()
sort()
splice()
toString()
unshift()
valueOf()
JS Boolean
constructor
prototype
toString()
valueOf()
JS Classes
constructor()
extends
static
super
JS Date
constructor
getDate()
getDay()
getFullYear()
getHours()
getMilliseconds()
getMinutes()
getMonth()
getSeconds()
getTime()
getTimezoneOffset()
getUTCDate()
getUTCDay()
getUTCFullYear()
getUTCHours()
getUTCMilliseconds()
getUTCMinutes()
getUTCMonth()
getUTCSeconds()
now()
parse()
prototype
setDate()
setFullYear()
setHours()
setMilliseconds()
setMinutes()
setMonth()
setSeconds()
setTime()
setUTCDate()
setUTCFullYear()
setUTCHours()
setUTCMilliseconds()
setUTCMinutes()
setUTCMonth()
setUTCSeconds()
toDateString()
toISOString()
toJSON()
toLocaleDateString()
toLocaleTimeString()
toLocaleString()
toString()
toTimeString()
toUTCString()
UTC()
valueOf()
JS Error
name
message
JS Global
decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent()
escape()
eval()
Infinity
isFinite()
isNaN()
NaN
Number()
parseFloat()
parseInt()
String()
undefined
unescape()
JS JSON
parse()
stringify()
JS Math
abs()
acos()
acosh()
asin()
asinh()
atan()
atan2()
atanh()
cbrt()
ceil()
clz32()
cos()
cosh()
E
exp()
expm1()
floor()
fround()
LN2
LN10
log()
log10()
log1p()
log2()
LOG2E
LOG10E
max()
min()
PI
pow()
random()
round()
sign()
sin()
sqrt()
SQRT1_2
SQRT2
tan()
tanh()
trunc()
JS Number
constructor
isFinite()
isInteger()
isNaN()
isSafeInteger()
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
NaN
POSITIVE_INFINITY
prototype
toExponential()
toFixed()
toLocaleString()
toPrecision()
toString()
valueOf()
JS OperatorsJS RegExp
constructor
compile()
exec()
g
global
i
ignoreCase
lastIndex
m
multiline
n+
n*
n?
n{X}
n{X,Y}
n{X,}
n$
^n
?=n
?!n
source
test()
toString()
(x|y)
.
\w
\W
\d
\D
\s
\S
\b
\B
\0
\n
\f
\r
\t
\v
\xxx
\xdd
\uxxxx
JS Statements
break
class
continue
debugger
do…while
for
for…in
for…of
function
if…else
return
switch
throw
try…catch
var
while
JS String
charAt()
charCodeAt()
concat()
constructor
endsWith()
fromCharCode()
includes()
indexOf()
lastIndexOf()
length
localeCompare()
match()
prototype
repeat()
replace()
search()
slice()
split()
startsWith()
substr()
substring()
toLocaleLowerCase()
toLocaleUpperCase()
toLowerCase()
toString()
toUpperCase()
trim()
valueOf()
JS сравнение дат
В JavaScript для сравнения дат используются операторы , , и .
const earlier = new Date(2019, 0, 26) const later = new Date(2019, 0, 27) console.log(earlier < later) // true
Сложнее сравнить даты по времени суток (часам и минутам). Вы не сможете сравнить их с помощью или :
const a = new Date(2019, 0, 26) const b = new Date(2019, 0, 26) console.log(a == b) // false console.log(a === b) // false
Чтобы проверить, совпадает ли в двух датах значение времени, нужно сравнить их временные метки с помощью .
const isSameTime = (a, b) => { return a.getTime() === b.getTime() } const a = new Date(2019, 0, 26) const b = new Date(2019, 0, 26) console.log(isSameTime(a, b)) // true
Чтобы проверить, совпадают ли в датах дни недели, сравните их значения с помощью методов , и .
const isSameDay = (a, b) => { return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate()=== b.getDate() } const a = new Date(2019, 0, 26, 10) // 26 января 2019, 10:00 const b = new Date(2019, 0, 26, 12) // 26 января 2019, 12:00 console.log(isSameDay(a, b)) // true
Description
D’un point de vue technique, une date JavaScript correspond au nombre de millisecondes écoulées depuis le premier janvier 1970, minuit UTC. Cette date et cette heure sont les mêmes que l’epoch UNIX, qui est l’instant de référence principalement utilisé pour manipuler les dates/heures dans les systèmes informatiques.
Note : Bien que les valeurs temporelles des objets dates soient relatives à UTC, certaines des méthodes simples pour obtenir les composantes d’une date/heure fonctionnent relativement au fuseau horaire du système.
On notera également que la représentation maximale d’un objet n’est pas la même que le plus grand entier représentable en JavaScript ( vaut 9,007,199,254,740,991). En effet, ECMA-262 définit un maximum de ±100 000 000 (cent millions) jours relatifs au premier janvier 1970 UTC (ce qui correspond au 20 avril 271 821 avant notre ètre d’une part et au 13 septembre 275 760 de notre ère) pouvant être représentés par un objet standard (soit un intervalle de ±8 640 000 000 000 000 millisecondes).
Il existe différentes méthodes pour obtenir une date sous différents formats ou effectuer une conversion entre différents fuseaux. On distingue notamment les fonctions qui manipulent les dates relativement au temps universal coordonné (UTC). Le temps local est celui utilisé par l’appareil de l’utilisateur.
Ainsi, on dispose de méthodes permettant d’obtenir ou de définir les différentes composantes d’une date selon le temps local (ex. , ) et de méthodes équivalentes pour la manipulation en UTC (ex. et respectivement).
Date Object Methods
Method | Description |
---|---|
getDate() | Returns the day of the month (from 1-31) |
getDay() | Returns the day of the week (from 0-6) |
getFullYear() | Returns the year |
getHours() | Returns the hour (from 0-23) |
getMilliseconds() | Returns the milliseconds (from 0-999) |
getMinutes() | Returns the minutes (from 0-59) |
getMonth() | Returns the month (from 0-11) |
getSeconds() | Returns the seconds (from 0-59) |
getTime() | Returns the number of milliseconds since midnight Jan 1 1970, and a specified date |
getTimezoneOffset() | Returns the time difference between UTC time and local time, in minutes |
getUTCDate() | Returns the day of the month, according to universal time (from 1-31) |
getUTCDay() | Returns the day of the week, according to universal time (from 0-6) |
getUTCFullYear() | Returns the year, according to universal time |
getUTCHours() | Returns the hour, according to universal time (from 0-23) |
getUTCMilliseconds() | Returns the milliseconds, according to universal time (from 0-999) |
getUTCMinutes() | Returns the minutes, according to universal time (from 0-59) |
getUTCMonth() | Returns the month, according to universal time (from 0-11) |
getUTCSeconds() | Returns the seconds, according to universal time (from 0-59) |
getYear() | Deprecated. Use the getFullYear() method instead |
now() | Returns the number of milliseconds since midnight Jan 1, 1970 |
parse() | Parses a date string and returns the number of milliseconds since January 1, 1970 |
setDate() | Sets the day of the month of a date object |
setFullYear() | Sets the year of a date object |
setHours() | Sets the hour of a date object |
setMilliseconds() | Sets the milliseconds of a date object |
setMinutes() | Set the minutes of a date object |
setMonth() | Sets the month of a date object |
setSeconds() | Sets the seconds of a date object |
setTime() | Sets a date to a specified number of milliseconds after/before January 1, 1970 |
setUTCDate() | Sets the day of the month of a date object, according to universal time |
setUTCFullYear() | Sets the year of a date object, according to universal time |
setUTCHours() | Sets the hour of a date object, according to universal time |
setUTCMilliseconds() | Sets the milliseconds of a date object, according to universal time |
setUTCMinutes() | Set the minutes of a date object, according to universal time |
setUTCMonth() | Sets the month of a date object, according to universal time |
setUTCSeconds() | Set the seconds of a date object, according to universal time |
setYear() | Deprecated. Use the setFullYear() method instead |
toDateString() | Converts the date portion of a Date object into a readable string |
toGMTString() | Deprecated. Use the toUTCString() method instead |
toISOString() | Returns the date as a string, using the ISO standard |
toJSON() | Returns the date as a string, formatted as a JSON date |
toLocaleDateString() | Returns the date portion of a Date object as a string, using locale conventions |
toLocaleTimeString() | Returns the time portion of a Date object as a string, using locale conventions |
toLocaleString() | Converts a Date object to a string, using locale conventions |
toString() | Converts a Date object to a string |
toTimeString() | Converts the time portion of a Date object to a string |
toUTCString() | Converts a Date object to a string, according to universal time |
UTC() | Returns the number of milliseconds in a date since midnight of January 1, 1970, according to UTC time |
valueOf() | Returns the primitive value of a Date object |
❮ Previous
Next ❯
Объект Math
Встроенный глобальный объект содержит свойства и методы для математических констант и функций. Например, свойство объекта содержит значение математической константы «Пи» (3.141…), которые вы можете использовать в программе как
Подобным образом, математические функции являются методами объекта . Они включают тригонометрические, логорифмические, экспоненциальные и другие функции. Например, если вы хотите использовать тригонометрическую функцию синуса, вы напишете следующий код
Заметьте, что все тригонометрические методы объекта принимают аргументы в радианах.
В следующей таблице перечислены методы объекта .
Метод | Описание |
---|---|
Возвращает абсолютное значение (модуль) аргумента | |
, , | Стандартные тригонометрические функции; принимают аргументы в радианах |
, , , | Обратные тригонометрические функции; возвращают значения в радианах |
, , | Гиперболические тригонометрические функции; принимают аргументы в гиперболических углах |
, , | Обратные гиперболические тригонометрические функции; возвращают значения в гиперболических углах |
, , , , , |
Экспоненциальные и логорифмические функции |
, | Возвращают наибольшее/наименьшее целое, которое меньше/больше или равно входному значению |
, | Возвращают наибольшее или наименьшее (соответственно) из входных числовых значений, перечисленных через запятую |
Возвращает случайное число от 0 до 1 | |
, , , | Функции округления и отсечения дробной части |
, , | Корень квадратный, корень кубический, корень квадратный из суммы квадратов аргументов |
Знак числа, показывает является ли входное число позитивным, негативным или равным нулю | |
, | Количество первых нулевых бит в 32-битном двоичном представлении. Возвращает результат Си-подобного 32-битного целочисленного умножения двух аргументов. |
В отличии от большинства других объектов, вам не нужно создавать свои экземпляры объекта . Всегда следует использовать глобальный объект непосредственно.
Syntax
Note: The only correct way to instantiate a new
object is by using the operator. If you call the
object directly, such as , the returned value is a string
rather than a object.
There are four basic forms for the constructor:
-
When no parameters are provided, the newly-created object
represents the current date and time as of the time of instantiation. -
-
An integer value representing the number of milliseconds since January 1, 1970,
00:00:00 UTC (the ECMAScript epoch, equivalent to the UNIX epoch), with leap
seconds ignored. Keep in mind that most functions are only accurate to the nearest second.
-
-
-
A string value representing a date, specified in a format recognized by the
method. (These formats are , and also strings in a .)Note: Parsing of date strings with the
constructor (and , which works the same way) is
strongly discouraged due to browser differences and inconsistencies.-
Support for RFC 2822
format strings is by convention only. -
Support for ISO 8601 formats differs in that date-only strings (e.g.
) are treated as UTC, not local.
-
Support for RFC 2822
-
-
Individual date and time component values
Given at least a year and month, this form of returns a
object whose component values (year, month, day, hour, minute,
second, and millisecond) all come from the following parameters. Any missing fields
are given the lowest possible value ( for
and for every other component). The parameter values are all
evaluated against the local time zone, rather than UTC.-
Integer value representing the year.
Values from to map to the years
to . All other values are the actual year.
See the . -
Integer value representing the month, beginning with for January
to for December. If a value greater than is passed in,
then those months will be added to the date; for example, will return January 1st, 1991 - Optional
-
Integer value representing the day of the month. The default is .
- Optional
-
Integer value representing the hour of the day. The default is
(midnight). - Optional
-
Integer value representing the minute segment of a time. The default is
minutes past the hour. - Optional
-
Integer value representing the second segment of a time. The default is
seconds past the minute. - Optional
-
Integer value representing the millisecond segment of a time. The default is
milliseconds past the second.
-
Calling (the constructor) returns a object. If called with an invalid date string, it returns a object whose method returns the literal string .
Calling the function (without the keyword) returns a string. If called with an invalid date string, the function returns the literal string .
Создание даты
Вы можете создать дату, использовав оператор new:
- Со строкой даты.
- С аргументами даты.
- С меткой времени.
- Без аргументов.
Способ со строкой даты
Мы передаем строку даты в конструктор .
new Date('1988-03-21')
Но если вы передадите строковое представление даты в формате 21-03-1988, то получите ошибку.
new Date(’21-03-1988′) приводит к ошибке Invalid Date.
В JavaScript нужно использовать формат даты, который принят во всем мире — ISO 8601.
// Расширенный формат ISO 8601 `YYYY-MM-DDTHH:mm:ss:sssZ`
Вот что означают значения:
- : 4-значный год;
- : двузначный месяц (где январь 01, а декабрь 12);
- : двузначная дата (от 01 до 31);
- : разделители даты;
- : указывает на начало блока времени;
- : часы в 24-часовом формате (от 00 до 23);
- : минуты (от 00 до 59);
- : секунды (от 00 до 59);
- : миллисекунды (от 000 до 999);
- : разделители времени;
- : если присутствует, дата будет установлена в UTC. Если отсутствует, это будет местное время.
Часы, минуты, секунды и миллисекунды необязательны, если вы создаете дату. Если нужно передать дату 11 июня 2019 года:
new Date('2019-06-11')
Но если вы находитесь к востоку от Гринвича, то получите дату 10 июня.
new Date(‘2019-06-11’) выдаёт 10 июня, если вы находитесь к востоку от Гринвича
Если в районе, который опережает время по Гринвичу, то получите дату 11 июня.
new Date(‘2019-06-11’)выдаёт 11 июня, если вы находитесь к западу от Гринвича
Это происходит потому, что вы передаете дату без указания времени. В итоге JavaScript выводит дату, установленную в UTC.
Строка кода создает дату 11 июня 2019, 12:00 UTC. Вот почему люди, которые живут восточнее Гринвича, получают 10 июня вместо 11 июня.
Если вы хотите создать дату по местному часовому поясу, необходимо указать время. Когда вы включаете в дату время, вам нужно добавить, как минимум, часы и минуты (иначе Google Chrome возвращает недопустимую дату).
new Date('2019-06-11T00:00')
Дата по местному времени и дата в UTC.
Кстати, MDN предостерегает от использования строкового представления даты, поскольку браузеры могут ее трактовать по-разному.
MDN не рекомендует создавать даты с помощью строкового представления.
Создание дат с помощью аргументов
Конструктор Date принимает семь параметров:
- Год: четырехзначный год.
- Месяц: месяц года (0-11). По умолчанию 0.
- День: день месяца (1-31). По умолчанию 1.
- Час: час дня (0-23). По умолчанию 0.
- Минуты: Минуты (0-59). По умолчанию 0.
- Секунды: секунды (0-59). По умолчанию 0.
- Миллисекунды: миллисекунды (0-999). По умолчанию 0.
// 11 июня 2019г. 5:23:59 местного времени new Date(2019, 5, 11, 5, 23, 59)
Многие разработчики избегают подхода с использованием аргументов, потому что он выглядит сложным. Но на самом деле все довольно просто.
new Date(2017, 3, 22, 5, 23, 50) // Эту дату легко понять, если читать ее слева направо. // Год: 2017 // Месяц: апрель (потому что месяца считаются с 0) // Дата: 22 // Часы: 05 // Минут: 23 // Секунды: 50
Но помните, что порядок месяца начинаются с нуля. Например, январь – 0, февраль – 1, март – 2 и т. д.
Вот еще несколько примеров для закрепления:
// 21 марта 1988г. 00:00 местного времени new Date(1988, 2, 21) // 25 декабря 2019г. 8:00 местного времени new Date(2019, 11, 25, 8) // 6 ноября 2023г. 2:20 местного времени new Date(2023, 10, 6, 2, 20) // 11 июня 2019г. 5:23:59 местного времени new Date(2019, 5, 11, 5, 23, 59)
Даты, созданные с помощью аргументов, указаны по местному времени. Если вам понадобится дата в формате UTC, используйте следующий синтаксис:
// 11 июня 2019 00:00 UTC. new Date(Date.UTC(2019, 5, 11))
Создание дат с помощью меток времени
В JavaScript метка времени – это количество миллисекунд, прошедших с 1 января 1970 г. (от начала эпохи Unix). Метки времени используются только для сравнения различных дат.
// 11 июня 2019 8:00 (по моему местному времени в Сингапуре) new Date(1560211200000)
Без аргументов
Если использовать конструктор объекта Date() без аргументов, то он возвращает дату по местному времени.
new Date()
Текущее время.
Méthodes des instances
- Renvoie le jour du mois (entre et ) pour la date donnée, selon le temps local.
- Renvoie le jour de la semaine (entre et ) pour la date donnée, selon le temps local.
- Renvoie l’année (sans chiffre implicite, sera renvoyé et pas par exemple) pour la date donnée, selon le temps local.
- Renvoie l’heure (entre et ) pour la date donnée, selon le temps local.
- Renvoie les millisecondes (entre et ) pour la date donnée, selon le temps local.
- Renvoie les minutes (entre et ) pour la date donnée, selon le temps local.
- Renvoie le mois (entre et ) pour la date donnée, selon le temps local.
- Renvoie les secondes (entre et ) pour la date donnée, selon le temps local.
- Renvoie la valeur numérique de la date donnée, exprimée en nombre de millisecondes écoulées depuis le premier janvier 1970, 00:00:00 UTC (pour les temps antérieurs, ce sont des valeurs négatives qui seront renvoyées).
- Renvoie le décalage horaire, exprimé en minutes, pour la locale courante.
- Renvoie le jour du mois (entre et ) pour la date donnée, selon le temps universel.
- Renvoie le jour de la semaine (entre et ) pour la date donnée, selon le temps universel.
- Renvoie l’année (sans chiffre implicite, sera renvoyé plutôt que ) pour la date donnée, selon le temps universel.
- Renvoie l’heure (entre et ) pour la date donnée, selon le temps universel.
- Renvoie les millisecondes (entre et ) pour la date donnée, selon le temps universel.
- Renvoie les minutes (entre et ) pour la date donnée, selon le temps universel.
- Renvoie le mois (entre et ) pour la date donnée, selon le temps universel.
- Renvoie les secondes (entre et ) pour la date donnée, selon le temps universel.
- Renvoie l’année (généralement exprimée sur 2 ou 3 chiffres) pour la date donnée selon le temps local. On utilisera plutôt .
- Définit le jour du mois pour la date donnée, selon le temps local.
- Définit l’année (sans chiffre implicite, on utilisera et pas ) pour la date donnée, selon le temps local.
- Définit les heures pour la date donnée, selon le temps local.
- Définit les millisecondes pour la date donnée, selon le temps local.
- Définit les minutes pour la date donnée, selon le temps local.
- Définit le mois pour la date donnée, selon le temps local.
- Définit les secondes pour la date donnée, selon le temps local.
- Définit le nombre de millisecondes écoulées depuis le premier janvier 1970, 00:00:00 UTC et la date donnée. On utilisera des nombres négatifs pour les moments antérieurs à cette date.
- Définit le jour du mois pour la date donnée selon le temps universel.
- Définit l’année (exprimée sans chiffres implicites, ex. et pas ) pour la date donnée selon le temps universel.
- Définit l’heure pour la date donnée selon le temps universel.
- Définit les millisecondes pour la date donnée selon le temps universel.
- Définit les minutes pour la date donnée selon le temps universel.
- Définit le mois pour la date donnée selon le temps universel.
- Définit les secondes pour la date donnée selon le temps universel.
- Définit l’année (avec 2 à 3 chiffres) pour la date courante selon le temps local. On privilégiera la méthode à la place.
- Renvoie la partie «date» (jour, mois, année) de l’objet en une chaîne de caractères compréhensible par un humain (anglophone) (ex. ).
- Convertit une date en une chaîne de caractères selon le format ISO 8601 Étendu.
- Renvoie une chaîne de caractères représentant l’objet avec . Cette méthode est utilisée par .
- Renvoie une chaîne de caractères représentant l’objet d’après le fuseau GMT (UTC). On utilisera plutôt .
- Renvoie une chaîne de caractères représentant les jours / mois / années de la date courante avec une représentation propre à la locale courante (déduite des paramètres systèmes utilisés).
- Convertit la date courante en une chaîne de caractères avec un format décrit en paramètre via une chaîne de caractères.
- Renvoie une chaîne de caractères représentant la date sous le forme de la locale courante. Cette méthode surcharge la méthode .
- Renvoie une chaîne de caractères représentant les heures / minutes / secondes de la date courante avec une représentation propre à la locale courante (déduite des paramètres systèmes utilisés).
- Renvoie une chaîne de caractères représentant l’objet courant. Cette méthode surcharge la méthode .
- Renvoie l’heure (avec les minutes et les secondes) d’une date sous la forme d’une chaîne de caractères compréhensible par un humain.
- Convertit une date en chaîne de caractère en utilisant le temps universel comme référentiel.
- Renvoie la valeur primitive d’un objet . Cette méthode surcharge la méthode .