Как определить, находится ли время между 2 установленными значениями времени (Google Apps Script) - PullRequest
0 голосов
/ 29 апреля 2020

Итак, я делаю программу, в которой при вызове определенной функции c она проверяет текущее время и выполняет действие в зависимости от времени. В настоящее время внутри моей функции вот мой код:

var d = new Date();
  var currentTime = d.toLocaleTimeString();
  var timeSplit = currentTime.split(':');
  var timeH = timeSplit[0];
  var timeM = timeSplit[1];
  var timePM = timeSplit[2].split(' ')[1]
  if (timeH >= 9 && timeM >= 30 && timePM == 'AM') {
    function1()
  } else if (timeH == 10 && timeM >= 25 && timeM < 30 && timePM == 'AM') {
    function2()
  } else if (timeH >= 10 && timeM <= 30 && timePM == 'AM') {
   function3()
  } else if (timeH >= 11 && timeM >= 40 && timePM == 'AM') {
    function4()
  }

Вы получаете точку

Она не возвращает никаких ошибок, но и не выполняет никаких функций. Как я могу это исправить?

1 Ответ

2 голосов
/ 30 апреля 2020

Я думаю, что в вашем скрипте timePM может быть undefined. Таким образом, никакие функции в операторе if не запускаются.

Так как насчет этой модификации?

Pattern 1:

From:

var currentTime = d.toLocaleTimeString();

До:

var currentTime = d.toLocaleTimeString('en-US');

Шаблон 2:

От:

var currentTime = d.toLocaleTimeString();
var timeSplit = currentTime.split(':');
var timeH = timeSplit[0];
var timeM = timeSplit[1];
var timePM = timeSplit[2].split(' ')[1]

До:

var h = d.getHours();
var timeH = h < 12 ? h : h - 12;
var timeM = d.getMinutes();
var timePM = d.getHours() < 12 ? 'AM' : 'PM';

Ссылка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...