2017-09-18 21 views
-3

Ich habe veraltetes JavaScript, das funktioniert, verwendet aber document.write() und möchte es aktualisieren. Ich habe versucht document.getElementById("greeting").innerHTML = d.toString();, aber das funktioniert nicht. Ich habe gründlich im Internet gesucht, hatte aber kein Glück. Ich habe das JavaScript-Zeitskript eingefügt. Ihre Hilfe wäre willkommen. Reich.JavaScript Datum/Uhrzeit/Textformat

var d = new Date(); 
 
var dateText = ""; 
 
var dayValue = d.getDay(); 
 
if (dayValue === 0) 
 
    dateText += "Sunday"; 
 
else if (dayValue === 1) 
 
    dateText += "Monday"; 
 
else if (dayValue === 2) 
 
    dateText += "Tuesday"; 
 
else if (dayValue === 3) 
 
    dateText += "Wednesday"; 
 
else if (dayValue === 4) 
 
    dateText += "Thursday"; 
 
else if (dayValue === 5) 
 
    dateText += "Friday"; 
 
else if (dayValue === 6) 
 
    dateText += "Saturday"; 
 

 
var monthValue = d.getMonth(); 
 
dateText += " "; 
 
if (monthValue === 0) 
 
    dateText += "January"; 
 
if (monthValue === 1) 
 
    dateText += "February"; 
 
if (monthValue === 2) 
 
    dateText += "March"; 
 
if (monthValue === 3) 
 
    dateText += "April"; 
 
if (monthValue === 4) 
 
    dateText += "May"; 
 
if (monthValue === 5) 
 
    dateText += "June"; 
 
if (monthValue === 6) 
 
    dateText += "July"; 
 
if (monthValue === 7) 
 
    dateText += "August"; 
 
if (monthValue === 8) 
 
    dateText += "September"; 
 
if (monthValue === 9) 
 
    dateText += "October"; 
 
if (monthValue === 10) 
 
    dateText += "November"; 
 
if (monthValue === 11) 
 
    dateText += "December"; 
 

 
if (navigator.appName.indexOf('Microsoft') !== -1) 
 
    dateText += " " + d.getDate() + ", " + (1900 + d.getYear()); 
 
else if (navigator.appName.indexOf('Netscape') !== -1) 
 
    dateText += " " + d.getDate() + ", " + (1900 + d.getYear()); 
 
else if (navigator.appName.indexOf('Opera') !== -1) 
 
    dateText += " " + d.getDate() + ", " + (1900 + d.getYear()); 
 

 
var minuteValue = d.getMinutes(); 
 
if (minuteValue < 10) 
 
    minuteValue = "0" + minuteValue 
 

 
var hourValue = d.getHours(); 
 
if (hourValue < 12) { 
 
    greeting = "Good morning!"; 
 
    var timeText = " at " + hourValue + ":" + minuteValue + 
 
    " AM. &nbsp;Welcome!"; 
 

 
} else if (hourValue === 12) { 
 
    var greeting = "Good afternoon!"; 
 
    timeText = " at " + hourValue + ":" + minuteValue + 
 
    " PM. &nbsp;Welcome! "; 
 
} else if (hourValue < 17) { 
 
    greeting = "Good afternoon!"; 
 
    timeText = " at " + (hourValue - 12) + ":" + minuteValue + 
 
    " PM. &nbsp;Welcome! "; 
 
} else { 
 
    greeting = "Good evening!"; 
 
    timeText = " at " + (hourValue - 12) + ":" + minuteValue + 
 
    " PM. &nbsp;Welcome! "; 
 
} 
 
document.open(); 
 
document.getElementById("greeting").innerHTML = d.toString(); 
 
// ORIGINAL - document.write(greeting + " It's " + dateText + timeText);

+0

Dies ist keine Refactor-My-Code-Site. – lilezek

+1

Und haben Sie tatsächlich ein Element auf der Seite mit einer ID der Begrüßung? –

+0

Verwenden Sie einfach https://momentjs.com/docs/ für die Verarbeitung von Datetime –

Antwort

-1

Alles, was Sie ist ein Element auf der Seite fehlen, der die ID hat greeting, die für document.getElementById("greeting") erforderlich ist. Sie können .innerHTML eines Elements, das nicht in dem DOM existiert, nicht festlegen!

Sie brauchen auch nicht document.open().

Hier ist ein funktionierendes Beispiel mit einem greeting Element hinzugefügt:

var d = new Date(); 
 
var dateText = ""; 
 
var dayValue = d.getDay(); 
 
if (dayValue === 0) 
 
    dateText += "Sunday"; 
 
else if (dayValue === 1) 
 
    dateText += "Monday"; 
 
else if (dayValue === 2) 
 
    dateText += "Tuesday"; 
 
else if (dayValue === 3) 
 
    dateText += "Wednesday"; 
 
else if (dayValue === 4) 
 
    dateText += "Thursday"; 
 
else if (dayValue === 5) 
 
    dateText += "Friday"; 
 
else if (dayValue === 6) 
 
    dateText += "Saturday"; 
 

 
var monthValue = d.getMonth(); 
 
dateText += " "; 
 
if (monthValue === 0) 
 
    dateText += "January"; 
 
if (monthValue === 1) 
 
    dateText += "February"; 
 
if (monthValue === 2) 
 
    dateText += "March"; 
 
if (monthValue === 3) 
 
    dateText += "April"; 
 
if (monthValue === 4) 
 
    dateText += "May"; 
 
if (monthValue === 5) 
 
    dateText += "June"; 
 
if (monthValue === 6) 
 
    dateText += "July"; 
 
if (monthValue === 7) 
 
    dateText += "August"; 
 
if (monthValue === 8) 
 
    dateText += "September"; 
 
if (monthValue === 9) 
 
    dateText += "October"; 
 
if (monthValue === 10) 
 
    dateText += "November"; 
 
if (monthValue === 11) 
 
    dateText += "December"; 
 

 
if (navigator.appName.indexOf('Microsoft') !== -1) 
 
    dateText += " " + d.getDate() + ", " + (1900 + d.getYear()); 
 
else if (navigator.appName.indexOf('Netscape') !== -1) 
 
    dateText += " " + d.getDate() + ", " + (1900 + d.getYear()); 
 
else if (navigator.appName.indexOf('Opera') !== -1) 
 
    dateText += " " + d.getDate() + ", " + (1900 + d.getYear()); 
 

 
var minuteValue = d.getMinutes(); 
 
if (minuteValue < 10) 
 
    minuteValue = "0" + minuteValue 
 

 
var hourValue = d.getHours(); 
 
if (hourValue < 12) { 
 
    greeting = "Good morning!"; 
 
    var timeText = " at " + hourValue + ":" + minuteValue + 
 
    " AM. &nbsp;Welcome!"; 
 

 
} else if (hourValue === 12) { 
 
    var greeting = "Good afternoon!"; 
 
    timeText = " at " + hourValue + ":" + minuteValue + 
 
    " PM. &nbsp;Welcome! "; 
 
} else if (hourValue < 17) { 
 
    greeting = "Good afternoon!"; 
 
    timeText = " at " + (hourValue - 12) + ":" + minuteValue + 
 
    " PM. &nbsp;Welcome! "; 
 
} else { 
 
    greeting = "Good evening!"; 
 
    timeText = " at " + (hourValue - 12) + ":" + minuteValue + 
 
    " PM. &nbsp;Welcome! "; 
 
} 
 
document.getElementById("greeting").innerHTML = d.toString();
<div id="greeting"></div>

hoffe, das hilft! :)

+0

Ich liebe StackOverflow; Sie geben die richtige Antwort, obwohl wegen der Leute, die glauben, dass das OP nicht genug Forschung getan hat, nach unten abgestimmt werden. –