Вы на правильном пути, если вы следуете той же схеме, что и при создании часов, чтобы построить дату, но вы неправильно понимаете некоторые методы датирования в JavaScript.getDay()
возвращает числовое значение для дня недели (0 для воскресенья и т. Д.), Поэтому вместо него нужно использовать getDate()
, чтобы вернуть день месяца.Кроме того, имейте в виду, что getMonth()
возвращает индекс месяца, начинающийся с 0 для января, поэтому вы должны внести корректировку при отображении вашей даты.
Вы можете сделать то же самое с гораздо меньшим количеством кода, но примерниже следует вашему образцу, так что, надеюсь, вам будет немного легче следовать.
function showTime() {
var dt = new Date();
var d = dt.getDate();
var m = dt.getMonth() + 1; // getMonth() returns the month "index" starting with 0 for Jan
var y = dt.getFullYear();
var hh = dt.getHours();
var mm = dt.getMinutes();
var ss = dt.getSeconds();
var session = "AM";
if (hh == 0) {
hh = 12;
}
if (hh > 12) {
hh = hh - 12;
session = "PM";
}
d = (d < 10) ? "0" + d : d;
m = (m < 10) ? "0" + m : m;
hh = (hh < 10) ? "0" + hh : hh;
mm = (mm < 10) ? "0" + mm : mm;
ss = (ss < 10) ? "0" + ss : ss;
var date = m + "/" + d + "/" + y;
var time = hh + ":" + mm + ":" + ss + " " + session;
document.getElementById("myClockDisplay").textContent = time;
document.getElementById("myDateDisplay").textContent = date;
setTimeout(showTime, 1000);
}
showTime();
<div id="myClockDisplay" class="clock"></div>
<div id="myDateDisplay"></div>