• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Probleme mit "new Date()

Bele

New member
Ich versuche derzeit die aktuelle Uhrzeit auszulesen, und im Format TT.MM.JJJJ, HH:MM:SS auszugeben dazu verwende ich folgenden Code:

Code:
function DateTime(){
	var dtJetzt = new Date();
	var dtDay = dtJetzt.getDate();
	var dtMon = dtJetzt.getMonth();
	var dtYear = dtJetzt.getYear();
	if(dtYear<999)
		dtYear+=1900;
	var dtHour = dtJetzt.getHours();
	var dtMin = dtJetzt.getMinutes();
	var dtSek = dtJetzt.getSeconds();
	var preDay = (dtDay < 10)? "0" : "";
	var preMon = (dtMon < 10)? ".0" : ".";
	var preHour = (dtHour < 10)? "0" : "";
	var preMin = (dtMin < 10)? ":0" : ":";
	var preSek = (dtSek < 10)? ":0" : ":";
	var dtDate = preDay + dtDay + preMon + dtMon + "." + dtYear;
	var dtTime = preHour + dtHour + preMin + dtMin + preSek + dtSek;
	var dtDateTime = Date + ", " + Time;
	return dtDateTime;
}

Nun erhalte ich beim Debuggen immer für Date() in new Date() dass Date () undefind ist und damit nicht verwendbar.
Ich habe auch schon versucht ob ohne new wie es sein sollte dass Datum und die Uhrzeit in einem anderen Format als String bereitgestellt wird, was auch funktioniert.

Könnt ihr euch bitte den Code anschauen und mir weiterhelfen?

Mit freundliche Grüßen,
Bele
 
Zuletzt bearbeitet:
Der Fehler ist wirklich in Zeile 2 des gezeigten Codes? In welchem Browser auf welchem OS hast du getestet?
Hast du Teile des Codes per Copy & Paste erzeugt? Manchmal kommen dann nicht sichtbare Sonderzeichen mit rein, die solche nicht erklärlichen Fehler auslösen.
 
Ja leider zeigt er mir wirklich den Fehler in Zeile 2 an und ich weiß nicht wieso...
ich habe es auf Windows 8 mit Firefox und mit Google Chrome getestet.
Ich habe den Code auch per Hand getippt also sollte es auch nicht an einem Sonderzeichen das nicht rein gehört liegen und weiß leider nicht mehr weiter besonders weil ich auf ähnliche weise schon in anderen Projekten Uhren eingebunden habe...
Danke fürs drüber schauen
 
Vielen Dank für den Hinweis, ich habe ihn behoben, allerdings ist dadurch der Fehler leider nicht verschwunden
 
AW: Probleme mit &amp;amp;quot;new Date()

Du musst logischerweise auch diese Zeile anpassen:
var dtDateTime = Date + ", " + Time;

Ich täte dir übrigens empfehlen, deine Variablenbenennungen einheitlich und konsistent zu gestalten.
So müsste beispielsweise die Variable "dtDay" (ausgehend von var dtJetzt) "dtTag" lauten.

PS: bitte zeige den funktionierenden Code in einem neuen Post, aber ändere nicht das Skript im ersten Beitrag. Ansonsten lässt sich der Thread von anderen schwer nachvollziehen.
 
Leider noch immer nicht mein jetziger Code ist:

Code:
function DateTime(){
	var dtJetzt = new Date();
	var dtDay = dtJetzt.getDate();
	var dtMon = dtJetzt.getMonth();
	var dtYear = dtJetzt.getYear();
	if(dtYear<999)
		dtYear+=1900;
	var dtHour = dtJetzt.getHours();
	var dtMin = dtJetzt.getMinutes();
	var dtSek = dtJetzt.getSeconds();
	var preDay = (dtDay < 10)? "0" : "";
	var preMon = (dtMon < 10)? ".0" : ".";
	var preHour = (dtHour < 10)? "0" : "";
	var preMin = (dtMin < 10)? ":0" : ":";
	var preSek = (dtSek < 10)? ":0" : ":";
	var dtDate = preDay + dtDay + preMon + dtMon + "." + dtYear;
	var dtTime = preHour + dtHour + preMin + dtMin + preSek + dtSek;
	var dtDateTime = dtDate + ", " + dtTime;
        return dtDateTime;
}

Der Debugger fliegt leider immernoch in Zeile 2...
Vielen Dank für die bisherige Hilfe, ich habe zwar jetzt eine Serverseitige Zwischenlösung aber wenn ihr noch weitere Ideen habt höhre ich sie sehr gerne da das was ich eigentlich vor habe nur Clientseitig geht (jetziges ist nur ne Notlösung bis das Clientseitige funktioniert).
 
Das Posten der gesammten Seite geht leider nicht, da sie nur im Intranet läuft und keine Internetanbindung hat, aber vielen Dank für die Info dass es bei dir läuft und danke für die Bemühungen mir zu Helfen.
 
AW: Probleme mit &amp;amp;quot;new Date()

Der Code funktioniert in der aktuellen Version einwandfrei, der Fehler muss bei dir daher an anderer Stelle liegen: Anhang anzeigen 59909-probleme-new-date.txt (Dateierweiterung ändern in *.html)

Ich erinnere nochmal:
Ich täte dir übrigens empfehlen, deine Variablenbenennungen einheitlich und konsistent zu gestalten.
So müsste beispielsweise die Variable "dtDay" (ausgehend von var dtJetzt) "dtTag" lauten.
 
Also bei mir funktioniert dieser Code jetzt einwandfrei.
Bei mir nicht... da wird ein falscher Monat ausgegeben... ;)

Aber der Code ist auch nicht ganz optimal:
Code:
function dateTime(){
	function format(number){
		return (number < 10? "0": "") + number.toString(10);
	}
	var dtJetzt = new Date();
	return format(dtJetzt.getDate()) + "." + format(dtJetzt.getMonth() + 1) + "." + format(dtJetzt.getFullYear()) + ", " +
		format(dtJetzt.getHours()) + ":" + format(dtJetzt.getMinutes()) + ":" + format(dtJetzt.getSeconds());
}
- lesen, verstehen, verwenden.

Um dein Problem zu lokalisieren solltest du alle deine eingebunden JS-Dateien und dein HTML mal nach "Date" durchsuchen. Ich bin stark der Meinung, dass du da irgendwo eine globale Variable mit dem Namen hast... wobei dann der direkte Aufruf ohne new nicht funktionieren dürfte... oder ist die Fehlermeldung jetzt, nachdem du die Namenskollision entfernt hast, anders?

PS: Ich würde mich ja an deiner Stelle an die übliche JS-Nameskonvention, die auch im JS-Sprachkern verwendet wird (Variablen und Funktionsnamen klein im CamelCase - nur Konstruktoren Groß), halten. Ich gehe stark davon aus, dass du damit das Problem nicht hättest.
 
Zurück
Oben