Часы реального времени - помогите новичку)))

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем zloysnegovik, 23 апр 2017.

  1. zloysnegovik

    zloysnegovik Нуб

    Всем добра!

    Использую Troyka-модуль Часы реального времени с Iskra JS
    И не могу найти ответ на два вопроса :(

    Корректно подключить часы у меня получается. Время тоже устанавливается
    Код (Javascript):
    PrimaryI2C.setup({ sda: SDA, scl: SCL, bitrate: 100000 });
    var rtc = require('@amperka/rtc').connect(PrimaryI2C);
    rtc.setTime('2017-07-23T20:17:00');
    Тикают, при отключении от питания Искры часы не сбрасываются, так что вроде всё ок

    Непонимание (у меня, а не часов :)) возникает при получении времени
    Если получить время таким образом:
    Код (Javascript):
    rtc.getTime('iso');
    то всё ок:
    Код (Javascript):
    ="2017-61-0T20:18:50"
    В руководстве по использованию сказано
    Чуть ниже на той же странице есть пример с получением текущего дня на Ардуино.
    Но в библиотеке для Искры я такого не нашёл, а стандартные getDay() и getUTCDay() не работают
    Код (Javascript):
    rtc.getDay();
    Uncaught Error: Function "getDay" not found!
     at line 1 col 5
    Первый вопрос - можно ли, всё же, получить день недели, или его надо вычислять (что ни разу не удобно)?

    Второй вопрос такой
    В описании JS-библиотеки часов сказано, что если в функцию Rtc.getTime([unit]) не передавать параметр unit, то возвращается объект Date
    Код (Javascript):
    rtc.getTime();
    ={ "ms": 1500845868000 }
    Но, если передать в качестве аргумента 'unixtime', то результат будет отличаться только типом данных и кол-вом нулей
    Код (Javascript):
    rtc.getTime('unixtime');
    =1500845868
    Это совсем нубский вопрос, но я правда ожидал объект Date примерно в таком виде (консоль браузера)
    Код (Javascript):
    now = new Date();
    console.log(now.toLocaleString());

    23.04.2017, 21:02:02
    Всё ок, это { "ms": 1500845868000 } - объект Date?

    Спасибо, если ответите :)
     
  2. sys

    sys Злобный Буратино Модератор

    А Вы попробуйте:
    Код (Javascript):

    var now = rtc.getTime();
    console.log(now.toString());
     
     
    zloysnegovik нравится это.
  3. zloysnegovik

    zloysnegovik Нуб

    Огромное спасибо! Работает :)
    Код (Javascript):
    rtc.setTime('2017-04-24T22:20:00');
    var now = rtc.getTime();
    print(now.toString());

    ={ "ms": 1493072407000 }
    Mon Apr 24 2017 22:20:07 GMT+0000
    А вот ещё такой вопрос появился: можно ли изменить часовой пояс GMT+0000? :oops:
     
  4. sys

    sys Злобный Буратино Модератор

    Я боюсь спросить зачем? В наше случае GMT+0000 всего лишь дань стандарту... Вы его можете не выводить... Или вы хотите разнести системное время и время модуля? :) Выставили нужное время и ладненько, а если хотите иметь несколько разных часовых поясов - просто при выводе задавайте нужную разницу...

    Но если уж очень хочется заморочиться, то:
    http://www.espruino.com/DateExt
    http://wiki.amperka.ru/js:date
     
    arkadyf нравится это.
  5. zloysnegovik

    zloysnegovik Нуб

    Честно говоря, не знаю, наверное для общего развития :)

    Ссылку почитать будет интересно (там ещё и крон есть))))

    Спасибо за помощь! :)