Formato da Data do JavaScript

有四种 JavaScript 日期输入格式:

类型 Exemplo
ISO 日期 "2018-02-19" (国际标准)
短日期 "02/19/2018" 或者 "2018/02/19"
长日期 "Feb 19 2018" 或者 "19 Feb 2019"
完整日期 "Monday February 25 2015"

ISO 格式遵守 JavaScript 中的严格标准。

其他格式不太明确,可能是浏览器特定的。

JavaScript 日期输出

无论输入格式如何,JavaScript 默认将输出全文本字符串格式:

Mon Feb 19 2018 06:00:00 GMT+0800 (中国标准时间)

JavaScript ISO 日期

ISO 8601 是表现日期和时间的国际标准。

ISO 8601 语法 (YYYY-MM-DD) 也是首选的 JavaScript 日期格式:

实例(完整日期)

var d = new Date("2018-02-19");

Experimente você mesmo

计算的日期相对于您的时区。

根据您的时区,上面的结果将在 2 月 18 日至 2 月 19 日之间变化。

ISO 日期(年和月)

也可以不指定具体的某日来写日期 (YYYY-MM):

var d = new Date("2015-03");

Experimente você mesmo

O fuso horário pode causar mudanças nos resultados entre 28 de fevereiro e 1 de março.

Data ISO (apenas ano)

É também possível escrever a data sem especificar o mês e o dia (YYYY):

var d = new Date("2018");

Experimente você mesmo

O fuso horário pode causar mudanças nos resultados entre 31 de dezembro de 2017 e 1 de janeiro de 2018.

Data ISO (data completa com horas, minutos e segundos)

É também possível adicionar horas, minutos e segundos à data (YYYY-MM-DDTHH:MM:SS):

var d = new Date("2018-02-19T12:00:00");

Experimente você mesmo

A data e a hora são separadas por uma letra maiúscula T.

O tempo UTC é definido por uma letra maiúscula Z.

Se você quiser modificar o tempo em relação ao UTC, remova o Z e substitua por +HH:MM ou -HH:MM:

Exemplo

var d = new Date("2018-02-19T12:00:00-08:30");

Experimente você mesmo

UTC (Tempo Universal Coordenado) é equivalente a GMT (Greenwich Mean Time).

Notas:UTC, o tempo universal coordenado, também conhecido como tempo unificado mundial, tempo padrão mundial, tempo de coordenação internacional.

Omissão de T ou Z na string de data-hora pode resultar em diferentes resultados em navegadores diferentes.

Fuso horário

Ao definir a data, se não for especificado o fuso horário, o JavaScript usará o fuso horário do navegador.

Quando obter a data, se não for especificado o fuso horário, o resultado será convertido para o fuso horário do navegador.

Em outras palavras, se a data/hora for criada no GMT (Greenwich Mean Time), a data/hora será convertida para CST (China Standard Time), se o usuário estiver navegando da China.

JavaScript data curta

As datas curtas geralmente usam a sintaxe "MM/DD/YYYY":

Exemplo

var d = new Date("02/19/2018");

Experimente você mesmo

Aviso

Em alguns navegadores, o mês ou dia sem zero à frente pode gerar erros:

var d = new Date("2018-2-19");

o comportamento de "YYYY / MM / DD" é indefinido.

Alguns navegadores tentam adivinhar o formato. Alguns retornam NaN

var d = new Date("2018/02/19");

o comportamento de "DD-MM-YYYY" é indefinido.

Alguns navegadores tentam adivinhar o formato. Alguns retornam NaN

var d = new Date("19-02-2018");

JavaScript data longa

As datas longas geralmente são escritas com a sintaxe "MMM DD YYYY":

Exemplo

var d = new Date("Feb 19 2018");

Experimente você mesmo

O mês e o dia podem aparecer em qualquer ordem:

Exemplo

var d = new Date("19 Feb 2018");

Experimente você mesmo

E, o mês pode ser escrito com o nome completo (January) ou abreviação (Jan):

Exemplo

var d = new Date("February 19 2018");

Experimente você mesmo

Exemplo

var d = new Date("Feb 19 2018");

Experimente você mesmo

Os pontos-virgula são ignorados e são insensíveis a maiúsculas e minúsculas:

Exemplo

var d = new Date("FEBRUARY, 25, 2015");

Experimente você mesmo

Data Completa do JavaScript

JavaScript aceita strings de data no "formato completo do JavaScript":

Exemplo

var d = new Date("Mon Feb 19 2018 06:55:23 GMT+0100 (W. Europe Standard Time)");

Experimente você mesmo

JavaScript ignora erros no nome da data e no parêntese de tempo:

Exemplo

var d = new Date("Fri Mar 26 2018 09:56:24 GMT+0100 (Tokyo Time)");

Experimente você mesmo