Como posso obter a data actual em JavaScript?
Utilize new Date()
para gerar um novo objeto Date
contendo a data e a hora atual.
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
today = mm + '/' + dd + '/' + yyyy;
document.write(today);
Isto lhe dará a data de hoje no formato de mm/dd/yyyy.
Simplesmente mude today = mm +'/'+ dd +'/'+ yyyy;
para o formato que você desejar.
UPDATED!***, Scroll Down
Se você quer algo simples e bonito para o usuário final ... Ainda, resolveu um pequeno problema de sufixo na primeira versão abaixo. Agora devolve o sufixo corretamente.
var objToday = new Date(),
weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
dayOfWeek = weekday[objToday.getDay()],
domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(),
dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder,
months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
curMonth = months[objToday.getMonth()],
curYear = objToday.getFullYear(),
curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()),
curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(),
curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(),
curMeridiem = objToday.getHours() > 12 ? "PM" : "AM";
var today = curHour + ":" + curMinute + "." + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear;
document.getElementsByTagName('h1')[0].textContent = today;
<h1></h1>
**UBER UPDATE* Após muita procrastinação, eu finalmente [GitHubbed**]1 e atualizei isto com a solução final que tenho usado para mim mesmo. Até teve algumas edições de última hora para torná-lo mais doce! Se você está procurando o velho [jsFiddle, por favor veja isto][2].
Esta atualização vem em 2 sabores, ainda relativamente pequenos, embora não tão pequenos quanto a minha resposta acima, original. Se você quer extremamente pequeno, vá com isso.
Also Note: Isto ainda é menos inchado do que moment.js. Embora o moment.js seja agradável, imo, tem demasiados métodos seculares, que requerem um momento de aprendizagem como se fosse uma língua. O meu aqui usa o mesmo formato comum como PHP: date.
Sabor 1 [
new Date().format(String)
][3] Meu Favor Pessoal. Eu conheço o tabu, mas funciona muito bem no Date Object. Basta estar ciente de quaisquer outros mods que você possa ter para o Objeto Data.
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
Sabor 2 [
dateFormat(Date, String)
][4] Método tudo-em-um mais tradicional. Tem toda a capacidade do método anterior, mas é chamado através do método com o parâmetro Data.
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
BONUS Flavor (requer jQuery)
$.date(Date, String)
Isto contém muito mais do que apenas uma simples opçãoformato
. Ele estende o objeto Data base e inclui métodos como `addDays'. Para mais informações, veja a opção Git.
Neste mod, os caracteres do formato são inspirados por PHP: data. Para uma lista completa, por favor veja o meu README.
Este mod também tem uma lista muito maior de formatos pré-fabricados. Para utilizar um formato pré-fabricado, basta introduzir o seu nome chave. DateFormat(new Date(), 'pretty-a');dateFormat(new Date(), 'pretty-a');
Como você pode notar, você pode usar o dobro `\' para escapar de um personagem.
Experimenta isto:
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
O resultado será como
15/2/2012