Şu anki zaman JavaScript'te HH: MM: SS biçiminde nasıl gösterilir?


101

HH: MM: SS .Bunu bir div içinde ayarlamak istiyorum.



1
Ancak sorun şu ki, PM ve AP'ye sahip olması buna ihtiyacım yok. İkincisi 24 format
user2648752

@ user2648752 cevabımı kontrol et demo jsfiddle.net/cse_tushar/fKKSb
Tushar Gupta - curioustushar

1
Um ... Kullanıcı saati sormasına rağmen soru neden tarih etiketli ?
Lloyd Dominic

Yanıtlar:


110

function checkTime(i) {
  if (i < 10) {
    i = "0" + i;
  }
  return i;
}

function startTime() {
  var today = new Date();
  var h = today.getHours();
  var m = today.getMinutes();
  var s = today.getSeconds();
  // add a zero in front of numbers<10
  m = checkTime(m);
  s = checkTime(s);
  document.getElementById('time').innerHTML = h + ":" + m + ":" + s;
  t = setTimeout(function() {
    startTime()
  }, 500);
}
startTime();
<div id="time"></div>

Yalnızca javaScript kullanan DEMO

Güncelleme

Updated Demo

(function () {
    function checkTime(i) {
        return (i < 10) ? "0" + i : i;
    }

    function startTime() {
        var today = new Date(),
            h = checkTime(today.getHours()),
            m = checkTime(today.getMinutes()),
            s = checkTime(today.getSeconds());
        document.getElementById('time').innerHTML = h + ":" + m + ":" + s;
        t = setTimeout(function () {
            startTime()
        }, 500);
    }
    startTime();
})();

121

Yerel işlevi kullanabilirsiniz Date.toLocaleTimeString():

var d = new Date();
var n = d.toLocaleTimeString();

Bu, örneğin şunu gösterecektir:

"11:33:01"

Http://www.w3schools.com/jsref/jsref_tolocaletimestring.asp adresinde buldum


5
Bence, bu kabul edilen cevap olmalı, çünkü soruyu tam olarak cevaplıyor, yerel işlevi kullanıyor ve istenen şeyi elde etmek için en kısa çalışan kod.
vchrizz

11
3:59:45 PM bana verdi. Bu istenen format değil.
Ivan

toLocaleTimeString bir işlev değil
Kullanıcı

tek satırdanew Date().toLocaleTimeString()
aljgom

64

Bunu içinde yapabilirsiniz Javascript.

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

Şu anda geri dönüyor 15:5:18. Değerlerden herhangi biri 10'dan küçükse, iki değil, yalnızca bir basamak kullanılarak görüntüleneceklerini unutmayın.

Bunu JSFiddle'da kontrol edin

Güncellemeler:
Önekli 0'lar için deneyin

var time = new Date();
console.log(
    ("0" + time.getHours()).slice(-2)   + ":" + 
    ("0" + time.getMinutes()).slice(-2) + ":" + 
    ("0" + time.getSeconds()).slice(-2));

Lütfen bu soruyu cevaplayın. stackoverflow.com/questions/18227667/…
user2648752

Lütfen bu soruyu cevaplayın, ilk sütunda zamanı göstermem gerekiyor.
user2648752

evet Ama soruda yazıldığı gibi üç sütun eklemem gerekiyor.Lütfen efendim soruyu okuyun. İlk sütuna zaman ve ikinci sütuna gerçek zamanlı veri
eklemem gerekiyor

Tushar'ın cevabında yaptığı gibi <10 dakika ve saniyeyi hesaba katmanız gerekir, aksi takdirde önde "0" göstermez.
keepitreal

@CleverGirl Basit bir cevap vermeye çalışıyordum, bu yüzden onu yazdım. Önekli 0'lardan bahsettiğiniz için bunu @ user113716'nın çok net bir şekilde ifade edilen cevabı ile yapmak istiyorum .
Praveen

40

Bunu yapmak için moment.js'yi kullanabilirsiniz .

var now = new moment();
console.log(now.format("HH:mm:ss"));

Çıktılar:

16:30:03

4
Teşekkür ederim remus. Bir daha asla js tarih-saat manipülasyonlarının korkunç tavşan deliğine düşmeyeceğim.
matlembo

Teşekkürler dostum! Her biri her şeyi çok karmaşık hale getiriyor! Bu, basit bir şey için hızlı bir kod satırı alması gereken biri için en kısa cevaptır!
ChairmanMeow

5
Bunu yapmak için gereken 120 küsur baytı 20k + komut dosyası ekleyerek saklayın! genius
frumbert

1
Hey, onu her zaman kullanmalısın demiyorum, ama zaten öyleyse, neden kolay yoldan yapmıyorsun?
brandonscript

30
new Date().toTimeString().slice(0,8)

ToLocaleTimeString () 'nin gibi bir şey döndürebileceğini unutmayın 9:00:00 AM.


1
Bu, birisinin yeni Date () olmadan tarih başlatan bir kod örneği yaptığını ilk kez görüyorum ... kullanımı normal mi (yeni Tarih)?
OG Sean

6

Bu şekilde kullanın:

var d = new Date();
localtime = d.toLocaleTimeString('en-US', { hour12: false });

Sonuç: 18:56:31


2

Bu kod, konsolda HH: MM: SS biçiminde geçerli saati verir, GMT saat dilimlerini dikkate alır.

var currentTime = Date.now()
var GMT = -(new Date()).getTimezoneOffset()/60;
var totalSeconds = Math.floor(currentTime/1000);
seconds = ('0' + totalSeconds % 60).slice(-2);
var totalMinutes = Math.floor(totalSeconds/60);
minutes = ('0' + totalMinutes % 60).slice(-2);
var totalHours = Math.floor(totalMinutes/60);
hours = ('0' + (totalHours+GMT) % 24).slice(-2);
var timeDisplay = hours + ":" + minutes + ":" + seconds;
console.log(timeDisplay);
//Output is: 11:16:55

2

function realtime() {
  
  let time = moment().format('h:mm:ss a');
  document.getElementById('time').innerHTML = time;
  
  setInterval(() => {
    time = moment().format('h:mm:ss a');
    document.getElementById('time').innerHTML = time;
  }, 1000)
}

realtime();
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>

<div id="time"></div>

Moment.js ve setInterval kullanmanın çok basit bir yolu .

setInterval(() => {
  moment().format('h:mm:ss a');
}, 1000)

Örnek çıktı

setInterval()1000ms veya 1 saniyeye ayar kullanıldığında , çıktı her 1 saniyede bir yenilenecektir.

15:25:50

Bu yöntemi yan projelerimden birinde bu şekilde kullanıyorum.

setInterval(() => {
  this.time = this.shared.time;
}, 1000)

Belki kullanmanın setInterval()bazı performans sorunlarına neden olup olmayacağını merak ediyorsunuzdur .

SetInterval CPU yoğun mu?

SetInterval'in doğası gereği size önemli performans sorunlarına neden olacağını düşünmüyorum. İtibarın, CPU'ların daha az güçlü olduğu daha önceki bir çağdan geldiğinden şüpheleniyorum. ... - yalnız gün

Hayır, setInterval kendi başına CPU yoğun değildir. Çok kısa döngülerde çalışan çok sayıda aralığınız varsa (veya orta derecede uzun bir aralıkta çalışan çok karmaşık bir işlem), aralıklarınızın tam olarak ne yaptığına ve ne sıklıkta yaptıklarına bağlı olarak bu kolayca CPU yoğun hale gelebilir. ... - aroth

Ancak genel olarak, setInterval'i sitenizde gerçekten çok gibi kullanmak işleri yavaşlatabilir. Az ya da çok ağır çalışma ile eşzamanlı olarak 20 kez koşmak şovu etkileyecektir. Ve sonra tekrar .. gerçekten herhangi bir parçayı karıştırabilirsiniz, bu setInterval'in bir problemi değildir. ... - jAndy


2
new Date().toLocaleTimeString('it-IT')

it-ITYerel gerekirse ped saat olur ve PM veya AM atlar01:33:01


Bu kod, nasıl kullanılacağını gösteren mevcut çözümlere kıyasla yalnızca ne sunar .toLocaleTimeString()?
Jason Aller

'it-IT' bölümü, tam olarak istendiği gibi çıktı verdiği anlamına gelir console.log (event.toLocaleTimeString ('it-IT')); // beklenen çıktı: 01:15:30 'it- 1:15:30 PMIT'yi dahil etmezseniz, o zaman ilk 0'ı kaçıran ve aksi takdirde çıkarmanız gereken' PM 'ekleyen bir şey elde edersiniz. Bunu açıklığa kavuşturmak için cevabımı düzenledim.
iamnotsam

0

Bu, javascript kullanarak bir div (yalnızca_zaman) içinde zamanın nasıl ayarlanacağına bir örnektir.

function date_time() {
    var date = new Date();
    var am_pm = "AM";
    var hour = date.getHours();
    if(hour>=12){
        am_pm = "PM";
    }
    if (hour == 0) {
        hour = 12;
    }
    if(hour>12){
        hour = hour - 12;
    }
    if(hour<10){
        hour = "0"+hour;
    }

    var minute = date.getMinutes();
    if (minute<10){
        minute = "0"+minute;
    }
    var sec = date.getSeconds();
    if(sec<10){
        sec = "0"+sec;
    }

    document.getElementById("time").innerHTML =  hour+":"+minute+":"+sec+" "+am_pm;
}
setInterval(date_time,500);
<per>
<div class="date" id="time"></div>
</per>

Bu kod bloğu soruyu yanıtlasa da, bunu neden yaptığına dair küçük bir açıklama yapsanız en iyisi olur.
Peter

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.