Wyświetlanie godzin i minut w javascript

Na mojej stronce mam zrobionego czata (shoutboxa) i teraz problem tkwi w tym, że minuty wysłanej wiadomości na czata wyświetlają się za pomocą d.getMinutes() i wtedy minuty wyświetla mi na czacie w dwóch cyfrach np.: 21:50, natomiast gdy jest godzina 21:06 to wtedy już nie wyświetla mi że jest 06 minut tylko że 6 minut i zapis wygląda tak: 21:6 a powinno być 21:06. Czy ktoś może mi w tym pomóc ? http://www.history.is.net.pl/?czat

Nie wiem czy to najlepszy sposób, czy nie, ale możesz spróbować:

d.toLocaleTimeString().substring(0,5)

(oczywiście wtedy bez rozdzielania na minuty i sekundy)

Edycja: Jednak nie jest to najlepszy pomysł, bo przecież nie wiesz, czy nie wejdzie ci na czat ktoś, u kogo godzina jest wyświetlana w innym formacie i pierwsze 5 znaków wcale nie musi być tym, czym ci się zdaje, ze ma być…

Math.floor(d.getMinutes()/10)+''+d.getMinutes()%10

A można też po prostu

minuty = d.getMinutes();

if(minuty<10) minuty = "0"+minuty;

Już on wybierze, ja lubię mieć jak najmniej linijek, szczególnie kiedy kod jest prosty i nie będzie wymagać modyfikacji.

wszerad zrobiłem tak:

Math.floor(d.getMinutes()/10)+''+d.getMinutes()%10

Ale teraz przykładowo zamiast godziny 00:05 mam godzine taką: 0:05

A powininna mi się wyświetlać godzina z minutami w ten sposób: 00:05

Możecie mi pomóc jakoś ? ?

Zamieniasz getMinutes na getHours. W całości:

Math.floor(d.getHours()/10)+''+d.getHours()%10+':'+Math.floor(d.getMinutes()/10)+''+d.getMinutes()%10

wszerad w ogóle mi to nie działa teraz bo nie wyświetla zadbych informacji na czacie.

Jednolinijkowe kawałki kodu są dobre tylko w wyjątkowych przypadkach. Nie ma sensu komplikować, bo kod jest dla ludzi :slight_smile:

Najlepiej tak:

function pobierzCzas() {

  var now = new Date();

  var hours = now.getHours() < 10 ? '0' + now.getHours() : now.getHours(),

    minutes = now.getMinutes() < 10 ? '0' + now.getMinutes() : now.getMinutes();


  return hours + ':' + minutes;

}

Proste i skuteczne. Jak będziesz chciał odchudzić ten kod, to go potraktuj kompresorem :slight_smile: