La fecha y la hora son cursos obligatorios que no se pueden omitir en el proceso de programación. Afortunadamente JavaScript
ha preparado un objeto integrado Fecha (fecha) para nosotros. A través de este objeto podemos crear, almacenar, modificar, medir el tiempo, imprimir y otras operaciones básicas. Es uno de los cursos obligatorios para todo programador JavaScript
.
es la misma que la de los objetos normales. Podemos usar new Date()
para crear un objeto Date
y también podemos pasar algunos parámetros de inicialización durante la creación.
sin parámetros:
let now = new Date()console.log(now)
Los resultados de la ejecución del código son los siguientes:
Esto simplemente genera la hora específica en la que se ejecuta el código. Lo que se muestra aquí son 2022年6月22日19点25份24秒
.
crea un objeto de fecha con parámetros de milisegundos, donde milliseconds
se refiere al número de milisegundos desde UTC+0 el 1 de enero de 1970 (1 milisegundo = 1/1000 segundos).
//Crea una hora, por ejemplo 1970.1.1 punto de tiempo 0 milisegundos let jan01_1970 = new Date(0) console.log (01 de enero de 1970) //Crear una hora que sea 3 días posterior al punto de tiempo 1.1 en 1970 (3 días * 24 horas * 3600 segundos * 1000 milisegundos) let jan04_1970 = nueva fecha (3 * 24 * 3600 * 1000)
Resultados de la ejecución del código
Console.log(jan04_1970):
milliseconds
es la cantidad de milisegundos que han pasado desde las 00:00:00 del 1 de enero de 1970, o se llama marca de tiempo .
La marca de tiempo es una representación digital simple de la fecha. Generalmente usamos new Date(milliseconds)
para crear una fecha. Si ya tenemos un objeto Date
, podemos usar date.getTime()
para obtener la marca de tiempo correspondiente a la fecha.
Nota:
China está en la Zona 8, por lo que la hora en el ejemplo anterior no es 00:00:00, sino 08:00:00, ¿
La marca de tiempo no es solo un número entero, también puede ser un número negativo, por ejemplo:
//1969-12-31 00:00:00let dec31_1969 = new Date(-24 * 3600 * 1000)console.log(dec31_1969)
code resultado de la ejecución:
Siusa una marca de tiempo cada vez que se crea, puede que no sea conveniente, porque el cálculo de la marca de tiempo todavía es un poco difícil.
También podemos usar una cadena de tiempo para crear una hora, por ejemplo:
let date = new Date('2022-06-22 00:00:00') console.log(date)
resultados de ejecución del código:
year
——debe ser un número de cuatro dígitos——month
[0,11]
, 0
significa enero—1
;hours/minutes/sec/ms
; el valor predeterminado es 0,por ejemplo:
let date = new Fecha(2022,6,22,20,35,33)console.log(fecha)
resultados de ejecución del código:
También podemos especificar el número de milisegundos:
let date = new Date(2022,6,22,20,35,33,777)console.log(date)
Si tenemos un objeto Date
, podemos pasar el archivo construido -en el método del objeto Date
, obtiene una parte del tiempo, como año, mes, fecha, etc.
Por ejemplo, tenemos date
:
let date = new Date(2022,5,22,20,35,33)
getFullYear()
obtiene el año, date.getFullYear()
devuelve 2022
getMonth()
mes, date.getMonth()
devuelve 5
, que es 6
;getDate()
obtiene la fecha del mes actual, date.getDate()
devuelve 22
;getDay()
obtiene el día de la semana en que es la hora actual, date.getDay()
devuelve 3
;Nota:
- Las fechas anteriores se basan todas en fechas locales. Por ejemplo, estoy en la zona horaria de China.
- Para obtener el año, debes usar
getFullYear
para devolver el añogetYear
dos dígitos.
También podemos obtener la hora en la zona horaria 0
, que es la hora UTC
, correspondiente a getUTCFullYear()
y getUTCMonth()
, getUTCDay
, etc. Simplemente inserte UTC
después de get
.
Por ejemplo:
let date = new Date(2022,5,22,20,35,33)console.log(date.getHours(),date.getUTCHours())
resultados de ejecución del código:
También se puede ver por la noche que la diferencia entre la zona horaria de China y la zona horaria 0
es de 8
horas.
getTime()
devuelve la marca de tiempo de la fecha y el método no tiene un modo UTC
;getTimezoneOffset()
devuelve la diferencia horaria entre la zona horaria local y la zona horaria 0
, en minutos, y no hay un modo UTC
también podemos establecer la fecha a través del método Date
Una cierta parte de:
setFullYear(year, [month], [date])
establece el año (mes, día)setMonth(month, [date])
establece el mes (día)setDate(date)
establece la fecha (el día del mes)setHours(hour, [min], [sec], [ms])
Establece horas (minutos, segundos, milisegundos)setMinutes(min, [sec], [ms])
Establecer minutos (segundos, milisegundos)setSeconds(sec, [ms])
Establecer segundos (milisegundos)setMilliseconds(ms)
Establecer milisegundossetTime(milliseconds)
(use el número de milisegundos desde 1970-01-01 00:00:00 UTC+0
para establecer la fecha completa)Entre las funciones anteriores, solo setTime()
no tiene variante UTC
.
JavaScript
's Date
tiene una función de calibración automática, lo que nos proporciona una gran comodidad a la hora de calcular el tiempo.
Por ejemplo:
let date = new Date(2022,5,38)//Tenga en cuenta los resultados de la ejecución del código 38console.log(date) aquí
:
De los resultados de la ejecución, podemos ver que "38 de junio de 2022" no provocó un error en el programa, pero convirtió la fecha al "8 de julio de 2022".
El caso anterior ha verificado que en JavaScript
, el objeto Date
asignará automáticamente las fechas fuera del rango. De esta forma, podemos utilizar Date
para calcular fechas de manera muy conveniente.
Por ejemplo, podemos sumar y restar el año, mes y día en la fecha:
let date = new Date(2022,5,23)//La hora actual es 2022-6-23date.setDate(date.getDate() + 8) // Calcule el tiempo después de ocho días
de resultados de ejecución del código console.log (fecha):
De manera similar, también podemos usar el método date.setSeconds()
para calcular la fecha en segundos.
y Date
de fecha es el mismo que el valor de retorno de date.getTime()
, que es un valor en milisegundos:
let date = new Date()console.log(+date)
code Resultado de la ejecución:
Dado que la esencia del tiempo es un número, también podemos realizar cálculos de diferencia de tiempo en ms
(milisegundos).
Por ejemplo:
let date1 = new Date(2022,5,23)let date2 = new Date(2022,5,24)console.log(`La diferencia horaria es ${date2-date1}ms`)
El resultado de la ejecución del código es :
Si queremos obtener la hora actual, un mejor enfoque es utilizar el método Date.now()
. Este método devolverá la marca de tiempo de la hora actual sin crear objetos Date
adicionales, lo cual es bueno para la sobrecarga de memoria y la recolección de basura, y el código es más simple.
Por ejemplo:
let comenzar = Date.now()for(let i = 1;i<100000;i++){ let num = i * i * i;}let end = Date.now()console.log(`consume time ${end - begin}ms`)
resultados de ejecución del código:
El método Date.parse()
puede leer una cadena de fecha y convertirla en una marca de tiempo, pero la cadena debe cumplir con ciertas reglas: YYYY-MM-DDTHH:mm:ss.sssZ
.
YYYY-MM-DD
corresponde al年-月-日
T
pertenece al delimitadorHH:mm:ss.sss
corresponde a时:分:秒.毫秒
Z
puede ser una zona horaria en formato +-hh:mm
. Un solo carácter Z
representa una cadena UTC+0
que se puede escribir de forma abreviada, por ejemplo: YYYY-MM-DD
, YYYY-MM
, YYYY
.
Para darle un pequeño consejo:
let ms = Date.parse('2022-06-23T19:38:30.777+08:00')//Marca de tiempo let date = nuevaejecución del código
Date(ms)console.log(date)
resultado:
JavaScript
usa Date
para procesar la hora: new Date()
;Date
tiene muchos métodos prácticos y podemos obtener queDate
se calibre automáticamenteDate.now()
puede obtener eficientemente la hora actual;