Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 December 10

¿

¿hope in NodeUA - JavaScript and Node.js in Ukraine
Roman
Я хочу записывать таймзону юзера в базу при регестрации. Могу вытянуть его ip адрес. Как сконвертировать этот ip адрес в таймзону?
Лучше всего спрашивать у пользователя его таймзону
источник

R

Roman in NodeUA - JavaScript and Node.js in Ukraine
¿hope
Лучше всего спрашивать у пользователя его таймзону
🤷‍♂
источник

R

Roman in NodeUA - JavaScript and Node.js in Ukraine
А для тех юзеров которые без таймзоны (раньше были зарегестрированы в систему) нужно проставить ее. Как в этом случае?
источник

Ш

Шима in NodeUA - JavaScript and Node.js in Ukraine
Ну я направлений дал. Можно прочекать айпишки на бесплатных сервисах и вытянуть таймзону
источник

YK

Yurii Kovalenko in NodeUA - JavaScript and Node.js in Ukraine
Шима
Ну я направлений дал. Можно прочекать айпишки на бесплатных сервисах и вытянуть таймзону
+
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Roman
Это ж платный сервис
В этой библиотеке включена база маппинга IP на локацию сервиса MaxMind до того как они поменяли лицензию. Лицензия в библиотеке позволяет использовать без оплаты для коммерческих целей. Имейте в виду, что эта база обновлялась больше года назад.
При желании, можно получить обновленную базу через сервисы провайдера и обновить вручную. У них вроде есть бесплатные лицензии
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Roman
Это ж платный сервис
И если что, библиотека не ходит на API. База идёт вместе с библиотекой
источник

R

Roman in NodeUA - JavaScript and Node.js in Ukraine
как получить айпи адрес клинта? постоянно выдает ::1
пробовал
               const ip = req.ip
             var ip = (req.headers['x-forwarded-for'] || '').split(',').pop().trim() ||
       req.connection.remoteAddress ||
         req.socket.remoteAddress ||
         req.connection.socket.remoteAddress
источник

GS

German Swan in NodeUA - JavaScript and Node.js in Ukraine
Roman
как получить айпи адрес клинта? постоянно выдает ::1
пробовал
               const ip = req.ip
             var ip = (req.headers['x-forwarded-for'] || '').split(',').pop().trim() ||
       req.connection.remoteAddress ||
         req.socket.remoteAddress ||
         req.connection.socket.remoteAddress
::1 == ‘localhost’
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Roman
как получить айпи адрес клинта? постоянно выдает ::1
пробовал
               const ip = req.ip
             var ip = (req.headers['x-forwarded-for'] || '').split(',').pop().trim() ||
       req.connection.remoteAddress ||
         req.socket.remoteAddress ||
         req.connection.socket.remoteAddress
Ну и достаточно проверить хэдер и req.connection.remoteAddress
источник

R

Roman in NodeUA - JavaScript and Node.js in Ukraine
например у меня таймзона Europe/Kiev и хочу запустить скрипт в 10:00 по Гринвичу, как определить что письмо генерировать и отправлять еще рано?
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
что значит “рано”? день отправки еще не настал? или час отправки? в каком формате хранится дата/время когда отправлять?
источник

V

Vitaliy in NodeUA - JavaScript and Node.js in Ukraine
В тебе ж дата відправки буде об'єктом Date, або стрінгою, з якої можна Date зробити. А об'єкти Date можна між собою порівнювати
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
если мне нужно отправить что-то 1 января в 13-00 по Киеву. то я cначала должна получить эквивалент этой даты в виде ISO строки или даты:
moment.tz('2020-01-01 13:00', 'YYYY-MM-DD HH:mm', 'Europe/Kiev').toISOString()
moment.tz('2020-01-01 13:00', 'YYYY-MM-DD HH:mm', 'Europe/Kiev’).toDate()
потом сохранить эту дату в базу или где вы там их храните
event.sendDateTime = …
event.save()
и потом обращаться с этим как с обычной датой:
if (new Date(event.sendDateTime) < Date.now()) console.log(“It’s early!!”)
(если через Luxon то я так быстро пример не напишу но аналогично)
источник

V

Vitaliy in NodeUA - JavaScript and Node.js in Ukraine
Но юзати moment не обов'язково, ліба громіздка і з недоліком у виді мутабельності дат)
Є ліба з похожим апі - date.js
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
200% я просто быстрее вспомнила на нем как взять эквивалент
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
А еще момент идет умирать
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Дмитрий
А еще момент идет умирать
Это да, но умирать он будет как жиквери. Вроде как и должен, но не умирает.
Да и у модных-молодежных аналогов с таймзонами, а особенно с конверсиями из одной в другую, сплошная печаль
источник

R

Roman in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
что значит “рано”? день отправки еще не настал? или час отправки? в каком формате хранится дата/время когда отправлять?
Есть таймзона и оффсет
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Один мудрый человек, нет, наверное все таки опытный, в этом чате как-то сказал: "никаких timezone", только UTC!
источник