yyyy - obter data em javascript




Como obtenho a data atual em JavaScript? (20)

ATUALIZADA! , Rolar para baixo

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. Also, fixed a small suffix issue in the first version below. Now properly returns suffix.

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>

UBBER UPDATE Depois de muita procrastinação, finalmente GitHubbed atualizar o GitHubbed com a solução final que estou usando para mim. Tem até algumas edições de última hora para torná-lo mais doce! Se você está procurando o antigo jsFiddle, por favor veja isto .

Esta atualização vem em 2 sabores, ainda relativamente pequena, embora não tão pequena quanto a minha resposta original acima. Se você quer extremamente pequeno, vá com isso.
Além disso, observe: isso ainda é menos inchado que o moment.js. Embora o moment.js seja bom, ele tem muitos métodos seculares, que exigem um momento de aprendizado como se fosse uma linguagem. O meu aqui usa o mesmo formato comum do PHP:date .

Links Rápidos

Sabor 1 new Date().format(String) Meu Fav Pessoal. Eu sei o tabu, mas funciona muito bem no objeto Date. Apenas esteja ciente de quaisquer outros mods que você possa ter no objeto Date.

//  use as simple as
new Date().format('m-d-Y h:i:s');   //  07-06-2016 06:38:34

Flavour 2 dateFormat(Date, String) Método mais tradicional all-in-one. Tem toda a habilidade do anterior, mas é chamado via método com Date param.

//  use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s');  //  07-06-2016 06:38:34

Sabor BONUS (requer jQuery) $.date(Date, String) Este contém muito mais do que apenas uma opção de format simples. Ele estende o objeto Date e inclui métodos como addDays . Para mais informações, consulte o Git .

Neste mod, os caracteres de formato são inspirados em PHP:date . Para uma lista completa, consulte meu README

Este mod também tem uma lista muito mais longa de formatos pré-criados. Para usar um formato predefinido, basta digitar seu nome de chave. dateFormat(new Date(), 'pretty-a');

  • 'composto'
    • 'commonLogFormat' == 'd / M / Y: G: i: s'
    • 'exif' == 'Y: m: d G: i: s'
    • 'isoYearWeek' == 'Y \\ WW'
    • 'isoYearWeek2' == 'Y - \\ WW'
    • 'isoYearWeekDay' == 'Y \\ WWj'
    • 'isoYearWeekDay2' == 'Y - \\ WW-j'
    • 'mySQL' == 'Ymd h: i: s'
    • 'postgreSQL' == 'Y.z'
    • 'postgreSQL2' == 'Yz'
    • 'soap' == 'Ymd \\ TH: i: s.u'
    • 'soap2' == 'Ymd \\ TH: i: s.uP'
    • 'unixTimestamp' == '@U'
    • 'xmlrpc' == 'Ymd \\ TG: i: s'
    • 'xmlrpcCompact' == 'Ymd \\ tGis'
    • 'wddx' == 'Ynj \\ TG: i: s'
  • 'constantes'
    • 'AMERICAN' == 'F j Y'
    • 'AMERICANSHORT' == 'm / d / Y'
    • 'AMERICANSHORTWTIME' == 'm / d / A h: i: sA'
    • 'ATOM' == 'Ymd \\ TH: i: sP'
    • 'COOKIE' == 'l dMY H: i: s T'
    • 'EUROPEAN' == 'j F Y'
    • 'EUROPEANSHORT' == 'dmY'
    • 'EUROPEANSHORTWTIME' == 'dmY H: i: s'
    • 'ISO8601' == 'Ymd \\ TH: i: sO'
    • 'LEGAL' == 'j F Y'
    • 'RFC822' == 'D d M e H: i: s O'
    • 'RFC850' == 'l dMy H: i: s T'
    • 'RFC1036' == 'D d M e H: i: s O'
    • 'RFC1123' == 'D d MYH: i: s O'
    • 'RFC2822' == 'D d MYH: i: s O'
    • 'RFC3339' == 'Ymd \\ TH: i: sP'
    • 'RSS' == 'D d MYH: i: s O'
    • 'W3C' == 'Ymd \\ TH: i: sP'
  • 'bonita'
    • 'pretty-a' == 'g: i.sA l jS \\ o \\ f F Y'
    • 'pretty-b' == 'g: iA l jS \\ o \\ f F Y'
    • 'pretty-c' == 'n / d / Yg: iA'
    • 'pretty-d' == 'n / d / Y'
    • 'pretty-e' == 'F jS - g: ia'
    • 'pretty-f' == 'g: iA'

Como você pode perceber, você pode usar double \ para escapar de um caractere.

Como faço para obter data atual em JavaScript?


A resposta mais new Date().toJSON().slice(0,10) é: new Date().toJSON().slice(0,10)


Eu acho que esta é uma pergunta antiga, mas a maneira mais fácil seria a seguinte:

var date = new Date();
var TimeStamp = date.toLocaleString();

function CurrentTime(){
  alert(TimeStamp);
}

Isto irá pegar a hora atual, passá-la para uma string baseada na localização e então você pode chamar a função CurrentTime para exibir a hora. Esta seria, para mim, a maneira mais eficaz de obter um carimbo de tempo para algo.


Isso funciona sempre:

    var now = new Date();
    var day = ("0" + now.getDate()).slice(-2);
    var month = ("0" + (now.getMonth() + 1)).slice(-2);
    var today = now.getFullYear() + "-" + (month) + "-" + (day);
    
    document.write(today);


Não sei se vai ajudar alguém, mas estou usando isso para obter hoje o objeto Date.

new Date( 3600000*Math.floor(Date.now()/3600000) )

Qual é o grande problema com isso .. A maneira mais limpa de fazer isso é

var currentDate=new Date().toLocaleString().slice(0,10);


Se você está procurando um controle muito mais granular sobre os formatos de data, eu recomendo muito o check out momentjs. Ótima biblioteca - e apenas 5KB. http://momentjs.com/


Se você estiver usando o jQuery. Experimente este forro:

$.datepicker.formatDate('dd/mm/yy', new Date());

Aqui está a convenção para formatar a data

  • d - dia do mês (sem primeiro zero)
  • dd - dia do mês (dois dígitos)
  • o - dia do ano (sem zeros à esquerda)
  • oo - dia do ano (três dígitos)
  • D - nome do dia curto
  • DD - nome do dia longo
  • m - mês do ano (sem zero)
  • mm - mês do ano (dois dígitos)
  • M - nome do mês curto
  • MM - nome do mês longo
  • y - ano (dois dígitos)
  • yy - ano (quatro dígitos)

Aqui está a referência para o datepicker jQuery


Se você quer um formato simples DD/MM/YYYY , acabei de chegar a esta solução simples, embora não prefira zeros ausentes.

var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );


Tente 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

Versão mais limpa e simples:

new Date().toLocaleString();

O resultado varia de acordo com a localidade do usuário:

27/02/2017, 9:15:41 AM



Você pode usar isso

<script>
function my_curr_date() {      
    var currentDate = new Date()
    var day = currentDate.getDate();
    var month = currentDate.getMonth() + 1;
    var year = currentDate.getFullYear();
    var my_date = month+"-"+day+"-"+year;
    document.getElementById("dateField").value=my_date;    
}
</script>

O HTML é

<body onload='return my_curr_date();'>
    <input type='text' name='dateField' id='dateField' value='' />
</body>

Você pode usar o moment.js: http://momentjs.com/

var m = moment().format("DD/MM/YYYY");

document.write(m);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>


O mais curto possível.

Para obter o formato como "2018-08-03":

let today = new Date().toISOString().slice(0, 10)

console.log(today)

Para obter o formato como "8/3/2018":

let today = new Date().toLocaleDateString()

console.log(today)

Além disso, você pode passar locale como argumento, por exemplo, toLocaleDateString("sr") , etc.


Uma solução JS de uma linha:

tl; dr

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

edge, ff latest, e chrome return todaysDate = "2/7/2017"
"funciona" * no IE10 +

EDIT 2/7/2017

Descobri que o IE10 e o IE Edge fazem as coisas de maneira um pouco diferente. com a new Date(Date.now()).toLocaleString() como entrada,

IE10 retorna:

"Tuesday, February 07, 2017 2:58:25 PM"

Eu poderia escrever uma grande função longa e FTFY. Mas você realmente deveria usar o moment.js para essas coisas. Meu script simplesmente limpa isso e fornece a notação expandida tradicional dos EUA: > todaysDate = "March 06, 2017"

IE EDGE retorna:

"‎2‎/‎7‎/‎2017‎ ‎2‎:‎59‎:‎27‎ ‎PM"

Claro que não poderia ser assim tão fácil. A string de data do Edge tem caracteres "•" invisíveis entre cada um visível. Portanto, não apenas verificamos se o primeiro caractere é um número, mas os 3 primeiros caracteres, já que qualquer caractere único em todo o período será eventualmente um ponto ou uma barra em algum momento. Então, para manter as coisas simples, apenas .slice() os primeiros três caracteres (pequeno buffer contra futuras travessuras) e, em seguida, verifique se há números. Deve-se notar provavelmente que esses pontos invisíveis podem persistir em seu código. Eu talvez investigue isso se você tiver planos maiores do que apenas imprimir essa string na sua opinião.

One atualizado one-liner:

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

Isso é uma droga para ler. E se:

var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];

RESPOSTA ORIGINAL

Eu tenho um one-liner para você:

new Date(Date.now()).toLocaleString().split(', ')[0];

e [1] lhe dará a hora do dia.


var d = (new Date()).toString().split(' ').splice(1,3).join(' ');

document.write(d)

Para dividi-lo em etapas:

  1. (new Date()).toString() dá "Sex 28 de junho de 2013 15:30:18 GMT-0700 (PDT)"

  2. (new Date()).toString().split(' ') divide a string acima em cada espaço e retorna um array da seguinte maneira: ["Fri", "Jun", "28", "2013", "15: 31:14 "," GMT-0700 "," (PDT) "]

  3. (new Date()).toString().split(' ').splice(1,3).join(' ') recebe o segundo, terceiro e quarto valores da matriz acima, une-os a espaços e retorna um string "Jun 28 2013"


var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);

Use a opção replace se você for reutilizar a variável utc , como new Date(utc) , pois o Firefox e o Safari não reconhecem uma data com traços.


new Date().toISOString().slice(0,10); 

trabalharia também


var date = new Date().toLocaleDateString("en-US");

Além disso, você pode chamar o método toLocaleDateString com dois parâmetros:

var date = new Date().toLocaleDateString("en-US", {
    "year": "numeric",
    "month": "numeric"
});

Artigo no MSDN . Mais sobre este método no MDN .





date