Пользовательский код для отображения текущего времени не работает - PullRequest
0 голосов
/ 20 марта 2019

//<![CDATA[
var displayCurrentTime = new function() {
  // Get values...
  var sysHour = getHours(); // Get Hours
  var curHour = 0; // Initialize current hour (12 hr format)
  var morningEvening = "AM"; // Initialize AM/PM notation

  if (sysHour < 13) { // If it's in the morning, set time as is.
    curHour = sysHour;
    morningEvening = "AM"
  } else {
    curHour = sysHour - 12; // If it's in the evening, subtract 12 from the value and use "PM"
    morningEvening = "PM"
  }
  var curMins: getMinutes; // Get current minutes...

  // Capture the ID of the notification bar div, and compose a string from the above values.
  var notificationBar = document.getElementById("notificationBar");
  var dateTimeString = curHour + ":" + curMins + " " + morningEvening;


  // All that code above files into this fun stuff.
  notificationBar.innerHTML = dateTimeString;
}

window.setInterval(function() {
  displayCurrentTime();
}, 1000);
//]]>

Я читал некоторую информацию и хотел создать простой скрипт, который собирает часы и минуты, делает некоторые вычисления, чтобы определить, является ли он AM или PM, создаетстроковая переменная из этих результатов, а затем вставляет ее в определенный элемент DIV.Он делает это каждую секунду.

Большая часть написанного мной кода, кажется, имеет смысл на основе прочитанного.В начале я пытался использовать функцию displayCurrentTime () {}, а также то, что вы видите ниже (var displayCurrentTime = new function () {}), но ни одна из них не работает.Я не могу получить текст для отображения на странице.Примечание. Идентификатор div - это группа уведомлений, как и здесь.

Есть ли в этом коде что-либо, что не имеет смысла, или это действительно требует публикации полного HTML?

Ответы [ 2 ]

2 голосов
/ 20 марта 2019

Вам не нужно new перед новой функцией, вы не создаете экземпляр класса.
У вас есть несколько синтаксических ошибок, таких как var curMins : ... вместо var curMins = ....

Также нельзя использовать методы getHours() и getMinutes() вне объекта Date:

var displayCurrentTime = function() {
                // Get values...
                var d = new Date();
                var sysHour = d.getHours();    // Get Hours
                var curHour = 0;             // Initialize current hour (12 hr format)
                var morningEvening = "AM";   // Initialize AM/PM notation
                    
                if (sysHour < 13) {          // If it's in the morning, set time as is.
                    curHour = sysHour;
                    morningEvening = "AM"
                } else {
                    curHour = sysHour - 12;  // If it's in the evening, subtract 12 from the value and use "PM"
                    morningEvening = "PM"
                }
                var curMins = d.getMinutes();     // Get current minutes...
                    
                var curSecs = d.getSeconds(); //optionally get seconds too 
                // Capture the ID of the notification bar div, and compose a string from the above values.
                var notificationBar = document.getElementById("notificationBar");
                var dateTimeString = curHour + ":" + curMins + ":" + curSecs + " " + morningEvening;
                    
                    
                // All that code above files into this fun stuff.
        notificationBar.innerHTML = dateTimeString;
            }
                
            window.setInterval(function(){ displayCurrentTime(); }, 1000);
<div id='notificationBar'>
Time Here 
</div>

См. Об объекте Date:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

О функциях и выражении анонимной функции:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions#The_function_expression_(function_expression)

Также:

https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Howto

1 голос
/ 20 марта 2019

В вашей функции есть несколько синтаксических ошибок, я буду получать их по одной:

  1. Не следует использовать new при объявлении функции. Просто бросьте это =) var displayCurrentTime = function() {
  2. Вы пытаетесь присвоить значение переменной, используя синтаксис json : в var minutes: getMinutes. Вы также забыли выполнить функцию, поэтому попробуйте var minutes = getMinutes();
  3. В (2) я предполагаю, что вы уже объявили методы getHours и getMinutes, но если нет, вы можете вызывать их напрямую из нового объекта Date:
var date = new Date();
var sysHours = date.getHours();
var minutes = date.getMinutes();
//...

Это должно сделать это!

Дополнительно: вы можете пропустить добавление displayCurrentTime к другой функции внутри функции setInterval: window.setInterval(displayCurrentTime, 1000);

var displayCurrentTime = function() {
            var date = new Date();           // Get current date object
            var sysHour = date.getHours();   // Get Hours
            var curHour = 0;                 // Initialize current hour (12 hr format)
            var morningEvening;              // No need to initialize
            if (sysHour < 13) {              // If it's in the morning, set time as is.
                curHour = sysHour;
                morningEvening = "AM"
            } else {
                curHour = sysHour - 12;      // If it's in the evening, subtract 12 from the value and use "PM"
                morningEvening = "PM"
            }
            var curMins = date.getMinutes(); // Get Minutes
                
            // Capture the ID of the notification bar div, and compose a string from the above values.
            var notificationBar = document.getElementById("notificationBar");
            var dateTimeString = curHour + ":" + curMins + " " + morningEvening;

            // All that code above files into this fun stuff.
            notificationBar.innerHTML = dateTimeString;
        }
            
        window.setInterval(displayCurrentTime, 1000);
<div id='notificationBar'></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...