Zeigt das aktuelle Datum und die Uhrzeit in javascript
Habe ich dieses Skript zum anzeigen des aktuellen Datums und der Zeit in meiner web-Seite:
<script type = "text/javascript">
function startTime() {
var now = new Date();
var h=now.getHours();
var min=now.getMinutes();
var s=now.getSeconds();
var ampm=(now.getHours()>11)?"PM":"AM";
var d=now.getDay();
var y=now.getFullYear();
var mon=now.getMonth();
var da=now.getDate();
var endings=["st","nd","rd","th"];
var dayendings=[0,1,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,0,2,3,4,4,4,4,4,4,1];
var days=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var months=["January","February","March","April", "May", "June","July","August","September", "October", "Novemeber","Decemeber"];
if (h>12) {h-=12}
if (h==0) {h=12};
if (min<10) {min="0"+min}
if (s<10) {s="0"+s}
da+=endings[dayendings[da]];
if (da<10) {da="0"+da};
d=days[d];
mon=months[mon-1];
document.getElementById("time").innerHTML=d+", "+mon+" "+da+", "+y+" "+h+":"+min+":"+s+" "+ampm;
var tim = setTimeout("startTime()",1000);
}
</script>
Aber das Ergebnis ist wie folgt:
Friday, April NaN, 2012 6:37:36 PM
Wie kann ich April NaN, 2012
Recht? Es muss das Datum von heute, die May 25,2012
- Wollen Sie
25th
oder25
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zumindest sollten Sie sich ändern
zu
weil Recht jetzt hat es einen off-by-one-Fehler (
da
1 bis 31, aber die Indizes aufdayendings
sind 0 bis 30).Diese sollten sofort Ihr problem lösen, wenn "heute" ist der 31. des Monats.
Korrekturen sind auch nötig, um die Werte in
dayendings
als4
ist nicht aussagekräftig da.On a side note, sollten Sie wirklich Graben diesen code für etwas besser. Würden Sie nicht lieber das so?
Ihre
var dayendings=[0,1,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,0,2,3,4,4,4,4,4,4,1];
enthält einige4
Werte. Dochvar endings=["st","nd","rd","th"];
hat nur eine Länge von 4, so dass es undefined zurück, wenn Sie Zugangendings[4]
.Außerdem können Sie sich ein off-by-one-Fehler, da
da
im Bereich1
zu31
, die nicht die indizes von Ihrendayendings
array.Scheint es, dass Ihre Logik für den Zähler ist nicht korrekt.
Versuchen Sie den folgenden code:
Habe ich eine relativ einfache DateTime-Objekt in dieses jsfiddle. Kann nützlich sein,? In Ihrem Fall, verwenden Sie dieses Objekt, dieser Befehl zeigt das Datum in dem format, das Sie wollen (abgesehen von der PM/AM Zeit-Formatierung)
erzeugen Sie zuerst diese Funktion und speichern als .js-Datei
dann verwenden Sie diesen code auf Ihre html-Seite zur Anzeige der aktuellen Zeit und Datum
vergessen Sie nicht, das Skript-tag auf der head-Teil der Seite:
ex