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
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