LINUX.ORG.RU

Часовые пояса

 , ,


0

3

Как сейчас правильно обрабатывать часовые пояса пользователя?

Я пришел к единому методу, это просить юзера самому указать свой часовой пояс в принудительном порядке после первой авторизации.

Знаю что есть способ явой забирать пояс с ПК но не факт что он окажется правильным.

А как в базе хранить? А если я хочу использовать таймстампы?



Последнее исправление: VictimOfLoveToLinux (всего исправлений: 1)

А как в базе хранить?

В таймстампах, конечно. Единственный абсолютный формат.

KRoN73 ★★★★★
()

Как сейчас правильно обрабатывать часовые пояса пользователя

moment.js

А как в базе хранить? А если я хочу использовать таймстампы?

Храни таймстампы в utc.

просить юзера самому указать свой часовой пояс

Хранить зону пользователя и спрашивать не нужно - её всегда можно спросить у браузера.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)

Как сейчас правильно обрабатывать часовые пояса пользователя?

Если у вас есть регистрация, и ЦА сервиса подразумевает расширение на другие часовые пояса, тогда, конечно же, самое правильное давать возможность устанавливать пользователю его часовой пояс. Объясню почему.
Определять его месторасположение через geoAPI не серьезно. Он может сейчас отдыхать в Тайланде, а может тупо использовать прокси. И определять через запрос локального времени - это тоже не лучшее решение. Ибо время может быть элементарно неверным. Я говорю сейчас о фактическом определении. То есть определили, а пользователя об этом не уведомили. Самый оптимальный вариант, это ненавязчиво спросить клиента: «Мы определили, что вы находитесь в такой-то временной зоне. Подтвердите, либо выберите другую».

А как в базе хранить? А если я хочу использовать таймстампы?

Тут все так, как сказали выше. Все значения на сервере UTC, клиенту UTC +-разница.

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Как и ожидалось, 2016 год на дворе. :<

Я сделал авто уведомление пользователя если он резко меняет регион по IP.

Те если сегодня он был в челябинске а вчера в москве я его спрашиваю какой пояс использовать.

+ галочку больше не спрашивать и выпадающий список использовать только Московское / Киевское / Берлинское столичное вообщем etc.

VictimOfLoveToLinux
() автор топика
Последнее исправление: VictimOfLoveToLinux (всего исправлений: 1)
Ответ на: комментарий от VictimOfLoveToLinux

Удобно, да, тут главное не перегнуть палку.
Например, Google Apps используют метод «временная зона по умолчанию», что также довольно удобно. То есть если вы провели A/B тестирование, и для вашего варианта целевой показатель много ниже чем для варианта «не спрашивать», допустим, то лучше как раз использовать «временную зону по умолчанию». Пусть пользователь сам указывает потом, если он улетел куда. Большинство пользователей, думается мне, все же привыкают работать в своей «домашней» временной зоне, и даже если они часто путешествуют, все равно ничего в настройках не меняют, м.б. потому что они уже привыкли, а м.б. потому что им просто лень :) Этого уж не скажу. А в целом вы правы

Как и ожидалось, 2016 год на дворе. :<

Поэтому тестируйте, запускайте различные варианты, смотрите что подходит именно вам, и не забывайте делиться вашими результатами с ЛОРом :)

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Ибо время может быть элементарно неверным

Вероятность того что он в тайлайнде занимается арифметикой с ранее сохраненной ТЗ гораздо выше кмк.

zz ★★★★
()
Ответ на: комментарий от znenyegvkby

Показывать даты в таймзоне браузера - самый простой и предсказуемый вариан. Настроить один раз неправильное системное время гораздо проще чем обновлять ТЗ на всех сайтах которые ее хранят.

zz ★★★★
()
Ответ на: комментарий от zz

К сожалению, я совершенно не врубаюсь в то, что вы говорите. Возможно, сказалось долгое времяпрепровождение здесь.

Настроить один раз неправильное системное время гораздо проще чем обновлять ТЗ на всех сайтах которые ее хранят.

Ничего не понимаю, зачем вообще обновлять ТЗ, если пользователь этого не сделал?

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

зачем вообще обновлять ТЗ, если пользователь этого не сделал

Затем чтобы пользователь этого не делал. Я не хочу ходить править свой профиль на тысячах ваших поделок туда и обратно, если мне нужно заехать в другую ТЗ на пару недель.

zz ★★★★
()
Ответ на: комментарий от zz

Ну а я вам о чем сказал? Не всегда хорошо изменять ТЗ не уведомляя об этом пользователя, вот о чем я говорил. Если вы «заезжаете в другую ТЗ на пару недель», то и получаете уведомление «Мы определили, что вы находитесь в такой-то временной зоне. Подтвердите, либо выберите другую». Если ваша ТЗ уже была установлена, вы можете использовать функцию «Оставить без изменений». И я дал определение в контексте чего я посчитал оба варианта определения ТЗ ненужными

Я говорю сейчас о фактическом определении. То есть определили, а пользователя об этом не уведомили.

Потому как это не хорошо. Ну переехали вы на пару недель, а может быть вы из своей новой ТЗ используете прокси через левую Австралию, дак что теперь по вашему, тоже применять ваше правило?

Затем чтобы пользователь этого не делал.

Я не говорил что пользователь каждый раз, вручную должен заходить в какие-то там «тысячи моих поделок (это тоже непонятно к чему было, в какую систему зашли - та система вас и уведомляет о смене)» и устанавливать себе ТЗ.
Я сказал

самое правильное давать возможность устанавливать пользователю его часовой пояс

м.б. поэтому и не могу сейчас вас понять.

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Самое правильное, показывать местное время в браузере.

а может быть вы из своей новой ТЗ используете прокси через левую Австралию, дак что теперь по вашему, тоже применять ваше правило?

Ну так в браузере все равно локальное время. Во всех^W большинстве остальных случаев когда локальное время НУЖНО на сервере без активности клиента ТЗ на аккаунте не меняется никогда.

zz ★★★★
()
Ответ на: комментарий от znenyegvkby

Самый оптимальный вариант, это ненавязчиво спросить клиента: «Мы определили, что вы находитесь в такой-то временной зоне. Подтвердите, либо выберите другую».

А потом так же ненавязчиво спросить про город, и про язык... а потом пользователь просто закрывает сайт и идет на другой.

Не нужно ничего спрашивать, эти попапы-дое**пы всех раздражают.

TDrive ★★★★★
()
Ответ на: комментарий от zz

Самое правильное, показывать местное время в браузере.

Все равно не могу понять как мои слова противоречат вашему утверждению. Тыкните, пожалуйста, носом. Сплю уже :)
Или вы просто хотите, чтобы при смене ТЗ сервис никогда не уведомлял вас об этом? Только в этом проблема?

znenyegvkby
()
Ответ на: комментарий от VictimOfLoveToLinux

Включи обратно, Петросян. Мужик дело говорит.

beastie ★★★★★
()
Ответ на: комментарий от TDrive

А потом так же ненавязчиво спросить про город, и про язык...

Ну можно сделать это один единственный раз, при регистрации допустим, а впоследствии, просто с помощью нотификации уведомлять о смене, например со ссылкой на настройку профиля, если это необходимо. Нотификация может быть в виде небольших авто-скрывающихся сообщений вне workspace вашего сервиса. Или вас и такая нотификация тоже будет раздражать? Уведомляете ведь вы своих пользователей о чем-то, или нет?=)

эти попапы-дое**пы всех раздражают.

Ну если вы подразумеваете под этим какие-нить монструозные окна, которые еще и нужно самим закрывать и которые всегда перекрывают workspace, тогда, конечно же да. Я согласен. Но это просто bad-practice, не более.

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Уведомляете ведь вы своих пользователей о чем-то, или нет?=)

Я вот на вскидку не могу вспомнить ни одного сайта который бы уведомлял меня о часовом поясе.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Ну это коммерц. сервисы по большому счету. М.б. они вам редко попадались просто? Навскидку, тот же Google AdSense, стоит только мне зайти в него через Tor, уведомляет меня с помощью своих нотайсов.

Вы изменили часовой пояс. Это может вызвать расхождения в оценках доходов на главной странице, но не отразится на ваших платежах.

Кликнув на которое я могу сразу перейти к настройкам и увидеть текущую тайм-зону откуда меня запилил Tor.
А вы на каких сайтах хотели бы это видеть? Например на том же ЛОР'е (если бы он имел настройку ТЗ), это было бы точно не уместно :)

znenyegvkby
()

Я пришел к единому методу, это просить юзера самому указать свой часовой пояс в принудительном порядке после первой авторизации.

А не проще ли вычислить его по айпи?

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

А не проще ли вычислить его по айпи?

Не думал что эти слова могут заставить меня бояться, оказалось могут :)

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Тут весь тред про то что у ТС с вероятностью 99% в сервисе ничего не завязано на зоны. Нет суточной статистики(которая наверняка и так по утц), емейл спама по утрам, доставки ужина дронами, генерации/автоотсылки документов и тд.

при смене ТЗ сервис никогда не уведомлял вас об этом

Я хочу чтобы сервис не хранил мою ТЗ, кроме случаев когда он без этого не может работать, во всех остальных случаях можно нарисовать локальное время на клиенте из utc.

zz ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.