Если не считать ошибки в проводке, массив fontArray
явно не инициализирует все значения. Таким образом, компилятор даст этим неинициализированным значениям (в глобальном массиве) значение по умолчанию, равное 0.
Результат - звонки на digitalWrite(0, HIGH)
. В зависимости от конфигурации платы и выводов, вывод «0» может отображаться на 13.
Цикл for может быть записан для защиты от этого с помощью:
for (int i = 0; i < nPins; i++) {
int pin = fontArray[a][i];
if (pin == 0) {
break;
}
digitalWrite(pin, HIGH);
}
Независимо от того, в каком часовом поясе GMT сервер, вот чрезвычайно простой способ получить время и дату для любого часового пояса. Это делается с помощью функций time ()
и gmdate ()
. Функция gmdate ()
обычно дает нам время по Гринвичу, но, проделав трюк с функцией time ()
, мы можем получить GMT + N или GMT-N, то есть мы можем получить время для любого часового пояса GMT.
Например, если вам нужно получить время для GMT + 5, вы можете сделать это следующим образом
<?php
$offset=5*60*60; //converting 5 hours to seconds.
$dateFormat="d-m-Y H:i";
$timeNdate=gmdate($dateFormat, time()+$offset);
?>
Теперь, если вам нужно получить время для GMT-5, вы можете просто вычтите смещение из time ()
вместо добавления к нему, как в следующем примере, где мы получаем время для GMT-4
<?php
$offset=4*60*60; //converting 4 hours to seconds.
$dateFormat="d-m-Y H:i"; //set the date format
$timeNdate=gmdate($dateFormat, time()-$offset); //get GMT date - 4
?>
Я бы настоятельно рекомендовал не возиться с временными метками UNIX, чтобы он выглядел как другой часовой пояс. Это урок, который я усвоил на горьком опыте, слишком много раз.
Временная метка - это количество секунд, прошедших с полуночи 1 января 1970 года по Гринвичу. Неважно, где вы находитесь в мире, данная метка времени представляет собой один и тот же момент времени, независимо от часовых поясов. Да, отметка времени «0» означает 10 часов утра 1 января 1970 года в Австралии, полночь 1 января 1970 года в Лондоне и 5 часов вечера 31 декабря 1969 года в Лос-Анджелесе, но это не так. Это означает, что вы можете просто складывать или вычитать значения и гарантировать точность.
Золотым примером, который слишком долго наполнял меня каждый год, был случай перехода на летнее время. Переход на летнее время означает, что существуют «часы», которых нет в определенных частях мира. Например, в большинстве частей США 2 апреля 2006 г. не было такого времени, как 2:01 ночи.
Однако достаточно квазиинтеллектуальной разглагольствования. Я советую хранить ваши даты в базе данных как метки времени, а затем ...
date ()
gmdate ()
date_default_timezone_set ()
, а затем date ()
Например,
$timestamp = time();
echo "BRISBANE: " . date('r', $timestamp) . "\n";
echo " UTC: " . gmdate('r', $timestamp) . "\n";
date_default_timezone_set('Africa/Johannesburg');
echo " JOBURG: " . date('r', $timestamp) . "\n";
// BRISBANE: Tue, 12 May 2009 18:28:20 +1000
// UTC: Tue, 12 May 2009 08:28:20 +0000
// JOBURG: Tue, 12 May 2009 10:28:20 +0200
Это сохранит ваши значения чистый (вам не нужно беспокоиться о добавлении смещений,