Jak uzyskać aktualny czas za pomocą jQuery

131

Poniższy kod zwraca czas w mikrosekundach, na przykład 4565212462.

alert( $.now() );

Jak przekonwertować go na format czasu czytelny dla człowieka, taki jak (godziny: minuty: sekundy) ?

Relm
źródło
1
Nie potrzebujesz jQuery, $.now()ponieważ JavaScript ma natywną implementację: stackoverflow.com/questions/20456712/…
Josh Crozier
Poprawki: (1) zostało to zastąpione rodzimą funkcją Date.now () oraz (2) Zwrócony czas jest w milisekundach, a nie w mikrosekundach.
den232

Odpowiedzi:

308

Możesz spróbować tak:

new Date($.now());

Używając JavaScript, możesz zrobić to w następujący sposób:

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

Rahul Tripathi
źródło
7
Zwróć uwagę, że .getHours () zwraca godziny w strefie czasowej komputera lokalnego. Jeśli użytkownik ma przeglądarkę w innej strefie czasowej niż Ty, otrzyma inne wyniki z getHours. Dotyczy to również metody .toString (). Kontrolowanie strefy czasowej w javascript jest trudne (musisz obliczyć przesunięcie między twoją a żądaną strefą czasową i odpowiednio zmodyfikować datę). Tak więc, jak wspomniano w innej odpowiedzi, użycie momentu.js wydaje się dobrym pomysłem. momentjs.com
Chris
2
Powinieneś także rozważyć dołączenie padStart do każdego get: dt.getMinutes (). ToString.padStart (2, '0') Zapewni to, że liczby pozostaną 2-cyfrowe z dopełnionym zerem i będzie zgodne z proponowaną funkcjonalnością javascript - tak ładna przyszłościowe: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
Negative Zero
2
@NegativeZero Naprawdę przydatna (jeśli nie niezbędna) sugestia. Niestety nie działało to na mnie w Firefoksie (nie testowałem na innych przeglądarkach). Jednak przepisanie go na String (dt.getMinutes ()). PadStart (2, '0') działa dla mnie.
stos herbatników
56

Musisz pobrać wszystkie „numery” ręcznie

lubię to:

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.
źródło
39

Konwertuj Dateobiekt na ciąg, używając jednego z metod Date.prototypepobierania konwersji , na przykład:

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"

Lub, jeśli chcesz, aby był bardziej dostosowany, zobacz listę Date.prototypemetod pobierających .

Oriol
źródło
26

Nie musisz do tego używać jQuery!

Realizacja rodzimy jest obsługa JavaScriptDate.now() .

Date.now()i $.now()zwróć tę samą wartość:

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)

.. i jeśli chcesz, aby godzina była sformatowana w formacie gg-mm-ss:

var now = new Date(Date.now());
var formatted = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds();
// 20:10:58
Josh Crozier
źródło
1
Nie musisz podawać parametrów nowej Date (), ponieważ jest ona domyślna.
Andrew Spode
1
@Spode Ach, dobra uwaga. Nie jestem pewien, dlaczego inne odpowiedzi używały wtedy 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
źródło
9

jQuery.now() Zwroty: liczba

Opis: Zwraca liczbę reprezentującą aktualny czas.

Ta metoda nie przyjmuje żadnych argumentów.

$.now()Metoda jest skrótem dla liczby zwróconego przez ekspresję (new Date).getTime().

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

Obsługa JavaScript jest prosta:

var d = new Date();
var time = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
console.log(time);
softvar
źródło
5

$ .now () w jQuery jest aliasem nowej Date (). getTime (), wewnętrznej funkcji JavaScript.

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

Zwraca liczbę sekund, które upłynęły od 1970 r., Powszechnie nazywanych (niekoniecznie poprawnie) czasem uniksowym, epoką lub datownikiem, w zależności od kręgów, w których się znajdujesz. Może być bardzo przydatne do obliczania różnicy między datami / godzinami przy użyciu prostych obliczeń . Nie ma żadnych informacji o strefie czasowej i zawsze jest UTC.

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

Nie ma potrzeby używania jQuery jako innego niż ten alias, niewiele więcej pomaga w manipulowaniu datą / godziną.

Jeśli szukasz szybkiego i nieczytelnego sposobu przedstawiania czasu w tekście, obiekt Date Javascript ma prototyp „toString”, który zwróci datę i godzinę w formacie ISO.

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

Jednak najprawdopodobniej będziesz chciał dostosować formatowanie. Obiekt Date ma możliwość wyciągnięcia odpowiednich informacji, dzięki czemu można zbudować własną reprezentację ciągu.

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

Jednak, ponieważ prosiłeś o rozwiązanie jQuery - prawdopodobnie pracujesz ze starszymi przeglądarkami. Jeśli chcesz robić bardziej szczegółowe rzeczy - zwłaszcza interpretować ciągi znaków w obiektach Date (przydatne w odpowiedziach API), możesz zajrzeć do Moment.js.

http://momentjs.com/

Zapewni to kompatybilność z różnymi przeglądarkami i znacznie poprawiło formatowanie bez konieczności łączenia wielu ciągów razem! Na przykład:

moment().format('hh:mm:ss');
//Will return 14:37:36
Andrew Spode
źródło
5

Używam momentu do wszystkich moich potrzeb związanych z manipulacją / wyświetlaniem czasu (zarówno po stronie klienta, jak i node.js, jeśli go używasz), jeśli potrzebujesz prostego formatu, powyższe odpowiedzi wystarczą, jeśli szukasz czegoś nieco bardziej złożonego, moment jest drogą do IMO.

TheZuck
źródło
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> 

możesz uzyskać więcej informacji z poniższego linku

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

Hussain Patel
źródło
1

Próbować

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

gość271314
źródło
0

Aby uzyskać czas lokalny w ISO8601SQL, TIMESTAMPmożesz spróbować:

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
źródło
0

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

Thendral R
źródło
Dodaj odpowiednie wyjaśnienie do swojej odpowiedzi
Anantha Raju C
0

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

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

Możesz użyć Date () w JS.

Suman Kumar
źródło
0

Następujące

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

działa na rzecz wymuszenia aktualnej daty na <input type="datetime-local">

Louis
źródło