Функция "setSeconds ()" не работает с веб-редактором p5.js - PullRequest
0 голосов
/ 08 июня 2019

Как и следовало ожидать, setSeconds (); будет обычно возвращать и устанавливать текущие секунды, переданные указанному значению, которое находится внутри параметров. Но что бы я ни пытался сделать в веб-редакторе p5.js, это не имеет абсолютно никакого эффекта.

Я хотел создать код, который бы вычислял угол (от горизонтали) и направление движущегося объекта. Пробовал вставлять функцию везде, что можно вообразить в моем коде, и даже изолировал мой фрагмент кода от остальных, чтобы убедиться, что никакой нежелательный внешний код (как и другие переменные) не влиял на него.

function seconds_Passed()
{  
  timePassed = new Date() 
  timePassed.setSeconds(0); //Has no effect even though many js examples show 
                            //this as the way to do it.
  secondsPassed = timePassed.getSeconds();
  console.log(secondsPassed);
}

Нет сообщений об ошибках. Ожидаемые результаты: для секунд, которые всегда начинаются с 0, когда я запускаю код, а не фактические текущие секунды, которые вы видите на часах своего рабочего стола.

1 Ответ

1 голос
/ 08 июня 2019

setSeconds() не является функцией p5.js, это стандартный метод JS, который устанавливает секунды для указанной даты в соответствии с местным временем Документы MDN .

Итак, разбор: -

function seconds_Passed()
{  
  timePassed = new Date() 
  timePassed.setSeconds(0); //Has no effect even though many js examples show 
                            //this as the way to do it.
  secondsPassed = timePassed.getSeconds();
  console.log(secondsPassed);
}

Всегда возвращает 0 для секунд.

Если вам нужно получить время между двумя событиями, вам нужно захватить две метки времени.

например: -

function seconds_Passed()
{  
  const date = new Date();
  const start = date.getTime();
  console.log("Start UNIX time " + start);
  
  setInterval(() => {
  	const nowDate = new Date();
  	const timeParsed = (Math.round((nowDate.getTime() - start) / 1000));
    console.log(timeParsed + ' Seconds parsed since script started');
  }, 3000)
}

seconds_Passed()

Другой пример, показывающий нажатие кнопки: -

const date = new Date();
const start = date.getTime();

function buttonClicked()
{
  	const nowDate = new Date();
  	const timeParsed = (Math.round((nowDate.getTime() - start) / 1000));
    console.log(' It took you ' + timeParsed + ' second to click the button');
}
<button onclick="buttonClicked()">
Click me
</button>
...