Como faço para obter a data atual em JavaScript?
javascript
date
date-formatting
Suresh Chaganti
fonte
fonte
var currentTime = new Date();
new Date()
retorna a hora atual , não a data atual . A distinção importa se você está tentando compará-la com outra data que não possui um componente de horário (ou seja, é à meia-noite).Respostas:
Use
new Date()
para gerar um novoDate
objeto que contém a data e hora atuais.Isso fornecerá a data de hoje no formato de mm / dd / aaaa.
Simplesmente mude
today = mm +'/'+ dd +'/'+ yyyy;
para o formato que desejar.fonte
01
,02
, ...,09
Date.prototype.toLocaleDateString()
método é uma solução mais flexível. Faz parte do JavaScript desde o ECMAScript 5.1 e é bem suportado por navegadores sempre verdes. MDN:toLocaleDateString()
Use a
replace
opção para reutilizar autc
variávelnew Date(utc)
, como Firefox e Safari não reconhece uma data com hífens.fonte
toUTCString()
retorna como utc datetime.moment( new Date().toJSON().slice(0, 10) )
Se você quer algo simples e bonito para o usuário final ...
Also, fixed a small suffix issue in the first version below. Now properly returns suffix.
Esta atualização vem em
doissabores, ainda relativamente pequenos, embora não tão pequenos quanto a minha resposta original acima. Se você quiser extremamente pequeno, vá com isso.Nota também: isso ainda é menos inchado que moment.js. Embora moment.js seja legal, imo, ele tem muitos métodos seculares, que exigem um momento de aprendizado como se fosse um idioma. O meu aqui usa o mesmo formato comum que o PHP: date .
Links Rápidos
Neste mod, os caracteres de formato são inspirados no PHP: date . Para uma lista completa, consulte o meu README
Este mod também possui uma lista muito maior de formatos pré-fabricados. Para usar um formato pré-fabricado, basta digitar o nome da chave.
dateFormat(new Date(), 'pretty-a');
Como você pode notar, você pode usar o dobro
\
para escapar de um personagem.fonte
O mais curto possível.
Para obter um formato como "2018-08-03":
Para obter um formato como "03/08/2018":
Além disso, você pode passar a localidade como argumento, por exemplo
toLocaleDateString("sr")
, etc.fonte
Se você quiser apenas uma data sem informações de hora, use:
fonte
Tente o seguinte:
O resultado será como
fonte
Se você está procurando um controle muito mais granular sobre os formatos de data, recomendo verificar o momentjs. Biblioteca fantástica - e apenas 5KB. http://momentjs.com/
fonte
Você pode usar o moment.js: http://momentjs.com/
fonte
moment().format("L")
para respeitar o local atual.Para dividir em etapas:
(new Date()).toString()
dá "28 de junho de 2013 às 15:30:18 GMT-0700 (PDT)"(new Date()).toString().split(' ')
divide a string acima em cada espaço e retorna uma matriz da seguinte maneira: ["Fri", "Jun", "28", "2013", "15:31:14", "GMT-0700", "(PDT)" ](new Date()).toString().split(' ').splice(1,3).join(' ')
pega os segundo, terceiro e quarto valores da matriz acima, junta-os a espaços e retorna uma string "28 de junho de 2013"fonte
Date().split(' ').splice(1,3).join(' ')
Isso funciona sempre:
fonte
Além disso, você pode chamar o método
toLocaleDateString
com dois parâmetros:Artigo no MSDN . Mais sobre esse método no MDN .
fonte
new Date().toLocaleDateString("de-de")
faz o truque para mim.Versão mais limpa e simples:
O resultado varia de acordo com a localidade do usuário :
fonte
Se você estiver satisfeito com o formato AAAA-MM-DD, isso também funcionará.
new Date().toISOString().split('T')[0]
2018-03-10
fonte
Você pode usar a biblioteca Date.js. que estende o objeto Date; portanto, você pode ter o método .today ().
fonte
Você pode obter a data atual para chamar o método estático agora assim:
referência:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
fonte
var dtToday = new Date(date.now);
A resposta de Varun não conta para TimezoneOffset . Aqui está uma versão que faz:
São
TimezoneOffset
minutos, enquanto o construtor Date leva milissegundos, portanto, a multiplicação por60000
.fonte
A resposta mais curta é:
new Date().toJSON().slice(0,10)
fonte
Resultado:
fonte
Como
toISOString()
retornará apenas a hora UTC atual, não a hora local. Temos que marcar uma data usando a função '.toString ()' para obter a data em umyyyy-MM-dd
formato comoPara obter data e hora em
yyyy-MM-ddTHH:mm:ss
formatoPara obter data e hora em
yyyy-MM-dd HH:mm:ss
formatofonte
Se você deseja um
DD/MM/YYYY
formato simples , acabei de apresentar esta solução simples, embora não prefixe zeros ausentes.fonte
funcionaria também
fonte
ÚLTIMA EDIÇÃO: 23/8/19 A biblioteca date-fns funciona como moment.js, mas tem uma pegada MUITO menor. Ele permite que você escolha quais funções deseja incluir no seu projeto para não precisar compilar toda a biblioteca para formatar a data de hoje. Se uma biblioteca mínima de terceiros não for uma opção para o seu projeto, eu apoio a solução aceita por Samuel Meddows na parte superior.
Preservar a história abaixo porque ajudou algumas pessoas. Mas, para constar, é bastante hacky e passível de interrupção sem aviso, como são a maioria das soluções neste post
EDIT 7/7/2017 Uma solução JS de uma linha:
Explicação
Eu descobri que o IE10 e o IE Edge fazem as coisas de maneira um pouco diferente. com
new Date(Date.now()).toLocaleString()
como entrada,O IE10 retorna:
Eu poderia escrever uma grande função longa e FTFY. Mas você realmente deve usar o moment.js para essas coisas. Meu script apenas limpa isso e fornece a notação tradicional expandida dos EUA:
> todaysDate = "March 06, 2017"
IE EDGE retorna:
Claro que não poderia ser tão fácil. A sequência de datas da borda possui caracteres "•" invisíveis entre cada uma visível. Portanto, agora não apenas verificaremos se o primeiro caractere é um número, mas os três primeiros, uma vez que qualquer caractere único em todo o período acabará sendo um ponto ou uma barra em algum momento. Então, para simplificar, basta .slice () os três primeiros caracteres (buffer minúsculo contra futuras travessuras) e verifique se há números. Provavelmente, deve-se notar que esses pontos invisíveis podem persistir em seu código. Talvez eu investigue isso se você tiver planos maiores do que apenas imprimir essa sequência na sua visualização.
One atualização one-liner:
Isso é uma merda de ler. E se:
RESPOSTA ORIGINAL
Eu tenho uma linha para você:
e
[1]
lhe dará a hora do dia.fonte
Você pode usar isso
O HTML é
fonte
Se você estiver usando jQuery. Experimente este forro:
Aqui está a convenção para formatar a data
Aqui está a referência para o dateQuicker do jQuery
fonte
Uma maneira direta de fazer isso (considerando o fuso horário atual, aproveitando o formato ISO aaaa-mm-dd) é:
Geralmente, esse é um formato de data compatível com todos os fins e você pode convertê-lo em um valor de data puro, se necessário:
fonte
Você pode fazer o checkout
E consulte a documentação do construtor Date (). ligação
fonte
Qual é o grande problema com isso? A maneira mais limpa de fazer isso é
var currentDate=new Date().toLocaleString().slice(0,10);
fonte
3/4/2018,
, melhores para usarnew Date().toJSON().slice(0,10)
..slice(0,10)
Isso pode ajudá-lo
Isso imprimirá a data atual no formato dd / MM / aaaa
fonte
É bom obter uma data formatada
fonte
Eu acho que essa é uma pergunta antiga, mas a maneira mais fácil seria a seguinte:
Isso pegará a hora atual, passará para uma string com base na localização e, em seguida, você poderá chamar a função CurrentTime para exibir a hora. Essa seria, para mim, a maneira mais eficaz de obter um carimbo de data / hora para alguma coisa.
fonte