Como obter tempo atual com o jQuery

129

O seguinte retorna o tempo em microssegundos, por exemplo 4565212462.

alert( $.now() );

Como o converto para um formato de hora legível por humanos, como (horas: minutos: segundos) ?

Relm
fonte
1
Você não precisa jQuery para $.now()desde JavaScript tem uma implementação nativa: stackoverflow.com/questions/20456712/...
Josh Crozier
Correções: (1) Isso foi substituído pelo Date.now () nativo (2) e (2) O tempo retornado é em milissegundos, não microssegundos.
den232

Respostas:

304

Você pode tentar assim:

new Date($.now());

Também usando Javascript, você pode fazer assim:

var dt = new Date();
var time = dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds();
document.write(time);

Rahul Tripathi
fonte
7
Observe que .getHours () retorna as horas no fuso horário da máquina local. Se o usuário tiver o navegador em outro fuso horário, você obterá outros resultados do getHours. Isso também vale para o método .toString (). Controlar o fuso horário no javascript é complicado (é necessário calcular o deslocamento entre o seu e o fuso horário desejado e modificar a data de acordo). Portanto, como mencionado em outra resposta, usar moment.js parece uma boa ideia. momentjs.com
Chris
1
Você também deve considerar incluir padStart em cada get: dt.getMinutes (). ToString.padStart (2, '0') Isso garantirá que os números permaneçam com 2 dígitos com zero preenchido e siga a funcionalidade javascript proposta - tão bonita preparado para o futuro: developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/…
Negativo Zero
2
@NegativeZero Uma sugestão realmente útil (se não essencial). Infelizmente, não funcionou para mim no Firefox (não testei em outros navegadores). No entanto, reescrevê-lo como String (dt.getMinutes ()). PadStart (2, '0') funciona para mim.
Biscuitstack
54

Você precisa buscar todos os "números" manualmente

como isso:

var currentdate = new Date(); 
    var datetime = "Now: " + currentdate.getDate() + "/"
                + (currentdate.getMonth()+1)  + "/" 
                + currentdate.getFullYear() + " @ "  
                + currentdate.getHours() + ":"  
                + currentdate.getMinutes() + ":" 
                + currentdate.getSeconds();

document.write(datetime);

Philip G
fonte
39

Converta um Dateobjeto em uma string, usando um dos Date.prototypegetters de conversão , por exemplo:

var d = new Date();
d+'';                  // "Sun Dec 08 2013 18:55:38 GMT+0100"
d.toDateString();      // "Sun Dec 08 2013"
d.toISOString();       // "2013-12-08T17:55:38.130Z"
d.toLocaleDateString() // "8/12/2013" on my system
d.toLocaleString()     // "8/12/2013 18.55.38" on my system
d.toUTCString()        // "Sun, 08 Dec 2013 17:55:38 GMT"

Ou, se você quiser mais personalizado, consulte a lista de Date.prototypemétodos getter .

Oriol
fonte
25

Você não precisa usar o jQuery para isso!

A implementação nativa do JavaScript éDate.now() .

Date.now()e $.now()retorne o mesmo valor:

Date.now(); // 1421715573651
$.now();    // 1421715573651
new Date(Date.now())   // Mon Jan 19 2015 20:02:55 GMT-0500 (Eastern Standard Time)
new Date($.now());     // Mon Jan 19 2015 20:02:55 GMT-0500 (Eastern Standard Time)

..e se você quiser a hora formatada em hh-mm-ss:

var now = new Date(Date.now());
var formatted = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds();
// 20:10:58
Josh Crozier
fonte
1
Você não precisa fornecer parâmetros para o novo Date (), como o padrão agora.
Andrew Spode
1
@ Spode Ah, bom ponto. Não sei por que outras respostas estavam usando o jQuery.
Josh Crozier
17

.clock {
width: 260px;
margin: 0 auto;
padding: 30px;
color: #FFF;background:#333;
}
.clock ul {
width: 250px;
margin: 0 auto;
padding: 0;
list-style: none;
text-align: center
}

.clock ul li {
display: inline;
font-size: 3em;
text-align: center;
font-family: "Arial", Helvetica, sans-serif;
text-shadow: 0 2px 5px #55c6ff, 0 3px 6px #55c6ff, 0 4px 7px #55c6ff
}
#Date { 
font-family: 'Arial', Helvetica, sans-serif;
font-size: 26px;
text-align: center;
text-shadow: 0 2px 5px #55c6ff, 0 3px 6px #55c6ff;
padding-bottom: 40px;
}

#point {
position: relative;
-moz-animation: mymove 1s ease infinite;
-webkit-animation: mymove 1s ease infinite;
padding-left: 10px;
padding-right: 10px
}

/* Animasi Detik Kedap - Kedip */
@-webkit-keyframes mymove 
{
0% {opacity:1.0; text-shadow:0 0 20px #00c6ff;}
50% {opacity:0; text-shadow:none; }
100% {opacity:1.0; text-shadow:0 0 20px #00c6ff; } 
}

@-moz-keyframes mymove 
{
0% {opacity:1.0; text-shadow:0 0 20px #00c6ff;}
50% {opacity:0; text-shadow:none; }
100% {opacity:1.0; text-shadow:0 0 20px #00c6ff; } 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// Making 2 variable month and day
var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; 
var dayNames= ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]

// make single object
var newDate = new Date();
// make current time
newDate.setDate(newDate.getDate());
// setting date and time
$('#Date').html(dayNames[newDate.getDay()] + " " + newDate.getDate() + ' ' + monthNames[newDate.getMonth()] + ' ' + newDate.getFullYear());

setInterval( function() {
// Create a newDate() object and extract the seconds of the current time on the visitor's
var seconds = new Date().getSeconds();
// Add a leading zero to seconds value
$("#sec").html(( seconds < 10 ? "0" : "" ) + seconds);
},1000);

setInterval( function() {
// Create a newDate() object and extract the minutes of the current time on the visitor's
var minutes = new Date().getMinutes();
// Add a leading zero to the minutes value
$("#min").html(( minutes < 10 ? "0" : "" ) + minutes);
},1000);

setInterval( function() {
// Create a newDate() object and extract the hours of the current time on the visitor's
var hours = new Date().getHours();
// Add a leading zero to the hours value
$("#hours").html(( hours < 10 ? "0" : "" ) + hours);
}, 1000); 
});
</script>
<div class="clock">
<div id="Date"></div>
<ul>
<li id="hours"></li>
<li id="point">:</li>
<li id="min"></li>
<li id="point">:</li>
<li id="sec"></li>
</ul>
</div>

Dessy Anggita Sangganingrum
fonte
9

jQuery.now() Retorna: Número

Descrição: retorna um número que representa a hora atual.

Este método não aceita argumentos.

O $.now()método é uma abreviação para o número retornado pela expressão (new Date).getTime().

http://api.jquery.com/jQuery.now/

É simples de usar Javascript:

var d = new Date();
var time = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
console.log(time);
softvar
fonte
5

$ .now () do jQuery é um apelido para o novo Date (). getTime (), uma função Javascript interna.

http://api.jquery.com/jquery.now/

Isso retorna o número de segundos decorridos desde 1970, comumente referido (não necessariamente corretamente) como Horário do Unix, Época ou Carimbo de data / hora, dependendo dos círculos em que você se enquadra. Pode ser realmente útil para calcular a diferença entre datas / horas usando matemática simples . Ele não possui nenhuma informação de fuso horário e é sempre UTC.

http://en.wikipedia.org/wiki/Unix_time

Não é necessário usar o jQuery, a não ser esse alias, ele ajuda muito pouco na manipulação de data / hora.

Se você estiver procurando uma maneira rápida e suja de representar a hora no texto, o objeto Data Javascript possui um protótipo "toString" que retornará uma Data e Hora ISO formatada.

new Date().toString();
//returns "Thu Apr 30 2015 14:37:36 GMT+0100 (BST)"

Muito provavelmente, você desejará personalizar sua formatação. O objeto Date pode extrair seus detalhes relevantes para que você possa criar sua própria representação de string.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

var d = new Date(); //without params it defaults to "now"
var t = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
//Will return 14:37:36

No entanto, como você solicitou uma solução jQuery - talvez seja provável que você esteja trabalhando com navegadores mais antigos. Se você deseja fazer coisas mais específicas - especialmente interpretar cadeias de caracteres em objetos Date (útil para respostas da API), consulte Moment.js.

http://momentjs.com/

Isso garantirá a compatibilidade entre navegadores e melhorou muito a formatação sem ter que concatenar muitas seqüências de caracteres juntas! Por exemplo:

moment().format('hh:mm:ss');
//Will return 14:37:36
Andrew Spode
fonte
4

Uso momento para todas as minhas necessidades de manipulação / exibição de tempo (tanto do cliente quanto do node.js, se você o usar). Se você precisar de um formato simples, as respostas acima serão suficientes, se você estiver procurando por algo um pouco mais complexo. momento é o caminho a seguir IMO.

TheZuck
fonte
3
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
</script>
<script>
    function ShowLocalDate()
    {
    var dNow = new Date();
    var localdate= (dNow.getMonth()+1) + '/' + dNow.getDate() + '/' + dNow.getFullYear() + ' ' + dNow.getHours() + ':' + dNow.getMinutes();
    $('#currentDate').text(localdate)
    }
</script>

</head>
<body>
    enter code here
    <h1>Get current local enter code here Date in JQuery</h1>
    <label id="currentDate">This is current local Date Time in JQuery</p>
    <button type="`enter code here button onclick="ShowLocalDate()">Show Local DateTime</button>

</body>
</html> 

você pode obter mais informações no link abaixo

http://www.morgantechspace.com/2013/11/Get-current-Date-time-in-JQuery.html#GetLocalDateTimeinJQuery

Hussain Patel
fonte
1

Experimentar

console.log(
  new Date().toLocaleString().slice(9, -3)
  , new Date().toString().slice(16, -15)
);

guest271314
fonte
1

Usando as funções de data nativas do JavaScript, você pode obter horas , minutos e segundos conforme desejar. Se você deseja formatar a data e a hora de maneira específica, implemente um método que estenda o protótipo JavaScript Date.

Aqui está um já implementado: https://github.com/jacwright/date.format

Ruwanka Madhushan
fonte
0

Para a hora local no ISO8601SQL, TIMESTAMPvocê pode tentar:

var tzoffset = (new Date()).getTimezoneOffset() * 60000;
var localISOTime = (new Date(Date.now() - tzoffset))
  .toISOString()
  .slice(0, 19)
  .replace('T', ' ');
$('#mydatediv').val(localISOTime);
Renzo Fabio Castillo Cáceres
fonte
0

console.log(
  new Date().toLocaleString().slice(9, -3)
  , new Date().toString().slice(16, -15)
);

Thendral R
fonte
Adicione explicações relevantes à sua resposta
Anantha Raju C
0

<p id="date"></p>

<script>
var d = new Date();
document.getElementById("date").innerHTML = d.toTimeString();
</script>

Você pode usar Date () em JS.

Suman Kumar
fonte
0

Os seguintes

function gettzdate(){
    var fd = moment().format('YYYY-MM-DDTHH:MM:ss');
    return fd ; 
}

trabalha para forçar a data atual para um <input type="datetime-local">

Louis
fonte