
Дата и время — обязательные курсы, которые невозможно обойти в процессе программирования. К счастью JavaScript подготовил для нас встроенный объект Date (дата). С помощью этого объекта мы можем создавать, хранить, изменять, измерять время, печатать и выполнять другие базовые операции. Это один из обязательных курсов для каждого программиста JavaScript .
аналогично созданию обычных объектов. Мы можем использовать new Date() для создания объекта Date , а также можем передать некоторые параметры инициализации во время создания.
без параметров:
let now = new Date()console.log(now).
Результаты выполнения кода следующие:

Здесь просто выводится конкретное время выполнения кода: 2022年6月22日19点25份24秒.
создает объект даты с параметрами в миллисекундах, где milliseconds относятся к количеству миллисекунд с момента UTC+0 1 января 1970 года (1 миллисекунда = 1/1000 секунды).
//Создаем время, например 1970.1.1, точка времени 0 миллисекунд, пусть jan01_1970 = новая дата (0) console.log(01_января 1970) //Создаем время на 3 дня позже, чем момент времени 1.1 в 1970 году (3 дня * 24 часа * 3600 секунд * 1000 миллисекунд) let jan04_1970 = новая дата (3 * 24 * 3600 * 1000)
Результаты выполнения кода
Console.log(jan04_1970):

milliseconds — это количество миллисекунд, прошедших с 00:00:00 1 января 1970 года, или это называется меткой времени .
Временная метка — это простое цифровое представление даты. Обычно для создания даты мы используем new Date(milliseconds) . Если у нас уже есть объект Date , мы можем использовать date.getTime() чтобы получить временную метку, соответствующую дате.
Примечание.
Китай находится в зоне 8, поэтому время в приведенном выше примере не 00:00:00, а 08:00:00,
Временная метка может быть не только целым числом, но и отрицательным числом, например:
//1969-12-31 00:00:00let dec31_1969 = new Date(-24 * 3600 * 1000)console.log(dec31_1969)
code результат выполнения:

использует временную метку каждый раз при создании, это может быть неудобно, поскольку вычисление временной метки все еще немного сложно.
Мы также можем использовать строку времени для создания времени, например:
let date = new Date('2022-06-22 00:00:00') console.log(date) результаты выполнения кода:

year — — должно быть четырехзначным числомmonth — — [0,11] , 0 означает1 ;hours/minutes/sec/ms — значение по умолчанию — 0,например:
let date = new Date(2022,6,22,20,35,33)console.log(date)
результаты выполнения кода:

Мы также можем указать количество миллисекунд:
let date = new Date(2022,6,22,20,35,33,777)console.log(date)
Если у нас есть объект Date , мы можем передать построенный -в методе объекта Date получить часть времени, например год, месяц, дату и т. д.
Например, у нас есть date :
let date = new Date(2022,5,22,20,35,33)
getFullYear() получает год, date.getFullYear() возвращает 2022getMonth() месяц, date.getMonth() возвращает 5 , что соответствует 6 ;getDate() получает дату текущего месяца, date.getDate() возвращает 22 ;getDay() получает день недели, в котором указано текущее время, date.getDay() возвращает 3 ;Примечание.
- Все приведенные выше даты основаны на местных датах. Например, я нахожусь в часовом поясе Китая.
- Чтобы получить год, вы должны использовать
getFullYear,getYearвернет двухзначный год.
Мы также можем получить время в часовом поясе 0 , то есть времени UTC , что соответствует getUTCFullYear() и getUTCMonth() , getUTCDay и т. д. Просто вставьте UTC после get .
Например:
let date = new Date(2022,5,22,20,35,33)console.log(date.getHours(),date.getUTCHours())
результаты выполнения кода:

Ночью также можно увидеть, что разница между часовым поясом Китая и часовым поясом 0 составляет 8 часов.
getTime() возвращает временную метку даты, и метод не имеет режима UTC ;getTimezoneOffset() возвращает разницу во времени между местным часовым поясом и часовым поясом 0 в минутах, и режим UTC не устанавливаетсямы также можем установить дату с помощью метода объекта Date . Определенная часть:
setFullYear(year, [month], [date]) устанавливает год (месяц, день)setMonth(month, [date]) устанавливает месяц (день)setDate(date) устанавливает дату (день месяца)setHours(hour, [min], [sec], [ms]) Устанавливает часы (минуты, секунды, миллисекунды)setMinutes(min, [sec], [ms]) Установить минуты (секунды, миллисекунды)setSeconds(sec, [ms]) Установить секунды (миллисекунды)setMilliseconds(ms) Установить миллисекундыsetTime(milliseconds) (используйте количество миллисекунд с 1970-01-01 00:00:00 UTC+0 для установки всей даты)Среди вышеперечисленных функций только setTime() не поддерживает вариант UTC .
Date в JavaScript имеет функцию автоматической калибровки, которая обеспечивает нам большое удобство при расчете времени.
Например:
let date = new Date(2022,5,38)//Обратите внимание на результаты выполнения кода 38console.log(date) здесь
:

По результатам выполнения мы видим, что «38 июня 2022 года» не вызвало ошибку в программе, а преобразовало дату в «8 июля 2022 года».
В приведенном выше случае было подтверждено, что в JavaScript даты, выходящие за пределы диапазона, будут автоматически назначены объектом Date . Таким образом, мы можем использовать объект Date для очень удобного расчета дат.
Например, мы можем складывать и вычитать год, месяц и день даты:
let date = new Date(2022,5,23)//Текущее время — 2022-6-23date.setDate(date.getDate() + 8)//Рассчитываем время через восемь дней после
выполнения кода console.log(date):

Точно так же мы можем использовать метод date.setSeconds() для вычисления даты в секундах.
и Date дат аналогичен возвращаемому значению date.getTime() , которое представляет собой значение в миллисекундах:
let date = new Date()console.log(+date)
code Результат выполнения:

Поскольку сущность времени — это число, мы также можем выполнять расчеты разницы во времени в ms (миллисекундах).
Например:
let date1 = new Date(2022,5,23)let date2 = new Date(2022,5,24)console.log(`Разница во времени составляет ${date2-date1}ms`) Результат выполнения кода: :

Если мы хотим получить текущее время, лучше использовать метод Date.now() . Этот метод вернет временную метку текущего времени без создания дополнительных объектов Date , что полезно для экономии памяти и сбора мусора, а код проще.
Например:
let Begin = Date.now()for(let i = 1;i<100000;i++){
let num = i * i * i;}let end = Date.now()console.log(`consume time ${end - start}ms`) результаты выполнения кода:

Метод Date.parse() может прочитать строку даты и преобразовать ее в метку времени, но строка должна соответствовать определенным правилам: YYYY-MM-DDTHH:mm:ss.sssZ .
YYYY-MM-DD соответствует年-月-日T принадлежит разделителю.HH:mm:ss.sss соответствует时:分:秒.毫秒Z может быть часовым поясом в формате +-hh:mm . Один символ Z UTC+0строку UTC+0, которую можно записать сокращенно, например: YYYY-MM-DD , YYYY-MM , YYYY .
Дам вам небольшой совет:
let ms = Date.parse('2022-06-23T19:38:30.777+08:00')//Отметка времени let date = new Date(ms)console.log(date) выполнение кода результат:

JavaScript использует объект Date для обработки времени: new Date() ;Date имеет множество практических методов, и мы можем получить определенный период времени,Date сделатьDate.now() может эффективно получать текущее время;