SENATOR ARMSTRONG
Нужно как-то на фронте подгонять приходящую дату под локальную таймзону?
Nikita
зависит от бека, если бек автоматом сохраняет в нужной таймзоне и потом переводит в 00, то у тебя автоматом нужную таймзону возьмет
Китикет
Просто бек должен нормально в ISO сохранять
Китикет
Нужно как-то на фронте подгонять приходящую дату под локальную таймзону?
А если там дата непонятная, то наоборот, надо отгонять от локальной таймзоны
Китикет
Потому что если на сервере дата хранится в печальном формате, клиент будет считать что это в его таймзоне, когда это например какой-нибудь часовой пояс германии, ну и будет показывать разницу в пару часов
SENATOR ARMSTRONG
Просто у меня щас дата с таймзоной одной, допустим +4, я на беке через моментжс добавляю несколько дней, сохраняю в стрингу через .toISOString и у меня сбивается таймзона на 00:00
Китикет
Так дата и время те же остаются?
SENATOR ARMSTRONG
Так дата и время те же остаются?
Ну время соответственно на 4 часа меньше
Китикет
Если обратно парсить
Китикет
Ну время соответственно на 4 часа меньше
Ну оно не меньше на самом деле, просто в абсолютном формате
Китикет
А если сново засунешь в moment будет та же дата с +4, наверное
SENATOR ARMSTRONG
Мне просто нужно сохранять это значение обратно в бд
SENATOR ARMSTRONG
И оно будет уже я так понял с таймзоной 00:00
Mihail
я в бд таймстемп храню
Sergey
Ребята, подскажите, а политика общего происхождения может мешать загрузке внешних шрифтов в email письме?
SENATOR ARMSTRONG
Всё, решил проблему, передаю true в . toISOString
Андрей
хочешь сказать, что эта хрень жрет 80-100кб кода?
Посмотри сколько весит preact-compat.
SENATOR ARMSTRONG
Это не проблема
Даты это боль(
Китикет
Даты это боль(
Совсем немного
Nikita
хм
Китикет
А на сервере даты как раз должны храниться в +0 желательно
Андрей
13кб
Как слой совместимости может весить больше чем сама либа?)
Китикет
А на сервере даты как раз должны храниться в +0 желательно
У нас всегда в ISO обычном хранится, проблем никогда не было никаких)
Александр
Александр
Если речь идёт о распределенной системе, где пользователи должны работать из разных поясов, то с датами действительно боль
Китикет
Вот так 2019-08-06T15:47:57.277Z
Китикет
Типа +0
Александр
Понятно, нормальное решение
Китикет
Я думал все так делают 🤔
Evgeniy
Александр
Я думал все так делают 🤔
Неа:) порой пока на грабли не наступишь не поймёшь
Китикет
Вот так 2019-08-06T15:47:57.277Z
На клиенте так вообще самое то
Китикет
С таймштампом всегда запары типа в секундах он или в мс
rovnyart
ребят, подскажите плз, есть ли какая-нибудь либа или там статья, как в реакте разруливать прости господи битовые маски? мне нужно сделать форму, в которой есть мульти-селект, чтобы он не массивом значения сохранял, а блин битовым полем, по справочнику, где указаны прости господи позиции битов в маске слева направо((( то есть не [0, 0, 1, 1], а там допустим какой-нибудь 132. да еще чтоб 132 распознавал как массив значений из справочника. а это ж надо блин учебник информатики доставать за шестой класс, может кто-то уже за меня его доставал?
Александр
как и везде: &, |
Но только зачем такие извраты, мы же не микроконтроллер с 512 байтами озу программируем
rovnyart
Какой там учебник, все просто же, если значений не много, то кодируй их степенями двойки: 1, 2, 4,8...
вот у меня справочник, эти value - это номер бита в маске справа налево
rovnyart
мне надо, чтобы если мне придет число 64, раскидать его по битам этим долбанным)
rovnyart
и отобразить в селекте
rovnyart
не очень понял, как это кодировать степенями двойки
Китикет
64 = 2 ^ 6 ? 🤔
rovnyart
64 = 2 ^ 6 ? 🤔
так точно))
Maksim
в чем вопрос-то?
rovnyart
как мне преобразовать число 124 в массив из значений справочника
Maksim
Александр
извраты? это стандартные средства языка
Ну если есть желание с битовыми масками трахаться то кто запретит
rovnyart
вот у меня селект, щас там массив цифр
rovnyart
Ну если есть желание с битовыми масками трахаться то кто запретит
да нет у меня желания, я же не раненый) Это требования другой части системы - девайса на андроиде
rovnyart
чисел точнее, из справочника
Китикет
(124).toString(2).split('').map((v, i) => ({ position: i, value: v === "1" }))
Китикет
😜
rovnyart
с этим я кашу как-нибудь сварю)
Александр
вот у меня справочник, эти value - это номер бита в маске справа налево
Сдвинь в лево на указанное число бит это и будет маска
Александр
1 << n
Китикет
А вот обратно в 128 🤪 const mask = result.map(item => Number(item.value)).join("") parseInt(mask, 2)
Александр
Александр
Проверить выставлен ли n-й бит value & (1 << n)
Alexey
забей, че вы как будто прграммисты с этими масками битовыми if-else будь мужиком
rovnyart
да и вот проверки мне тоже нужны, там поля рисоваться должны в зависимости от типа агента
rovnyart
всем большое спасибо)
Anton
Помогите пжлст переключить стейт. Мне надо после отправки формы убрать форму и показать новый контент. Код онСабмита: const onSubmit = e => { e.preventDefault(); referralSignup({email}); if (!error) { setFormData({ ...formData, showForm: false, showSuccess: true }); } }; Сейчас проблема в том, что если будет ошибка (например, юзер ввел неправильный емейл), то все равно произойдет переключение, тк он вначале выполнит условие if (!error) {...} в онСабмите, а потом получит ответ от сервера и поменяет стейт - error: true. Как быть в этом случае? Как выполнить изменение стейта, дождавшись ответа от сервера?
Китикет
Проверить выставлен ли n-й бит value & (1 << n)
Так, Александр, падажжи, а почему ты такой задрот в битах этих?
Александр
rovnyart
там в твиттере есть деды, которые хуесосят веб-разработку, в такие вот моменты я их отчасти понимаю)
Китикет
Вот это вроде не робит
Всегда 0 возвращает
Александр
Так, Александр, падажжи, а почему ты такой задрот в битах этих?
По роду хобби приходится железки прогить
Александр
Вот это вроде не робит
А приведите все выражение, я без компа сейчас, не могу проверить сам
Китикет
Да, походу ок, просто я старую переменную подставлял