
Alex
09.09.2016
01:14:35
бля
запрос в utc идет
все еще не вижу проблемы.

Amir
09.09.2016
01:14:50
такой какой как DateTime.current

Google

Alex
09.09.2016
01:15:13
Time.current.utc
(вроде)

Amir
09.09.2016
01:15:56
в БД я данные занес в ActiveAdmin
и если зайти в сам майск и сделать зарпосы то датывремя вроде нормальные , такие какие я установил в админке

Alex
09.09.2016
01:16:14
Главное как в базе они у тебя хранятся
Получи их как TIMESTAMP и сверь с тем что в рельсе получаешь

Amir
09.09.2016
01:16:31
а если зайти в консоли рельц
и сделать запрос
Foo.where("?", DateTime.now)
то рельцы передают дату время без таймзоны

Alex
09.09.2016
01:16:39
или просто получи их в UTC и посмотри что все ок
в "майке"
возможно mysql сам конвертирует дату под клиента

Amir
09.09.2016
01:22:35
config.active_record.default_timezone = :local
config.active_record.time_zone_aware_attributes = false
вроде помогло
хотя шас каким боков выйдет в админке хз

Alex
09.09.2016
01:23:07
Ты сейчас фигню сделал
рельсы по умолчанию в UTC сохраняют/читают
зачем это менять?

Google

Amir
09.09.2016
01:23:48
эксперименты

Alex
09.09.2016
01:24:13
Главное в продакшен такое не запускай

Amir
09.09.2016
01:24:14
тогда что предлагаешь?
в майск time_zone = SYSTEM

Alex
09.09.2016
01:24:36

Amir
09.09.2016
01:24:37
тип поля рельцы сделали datetime
наверно стоит конвертнуть в таймстам?

Alex
09.09.2016
01:25:22
рельсы сделали, рельсы лучше знают, не думаешь?
timestamp конвертируется при получении клиентом судя по этой статье: https://habrahabr.ru/post/61391/

Amir
09.09.2016
01:30:57
Foo.where("?", DateTime.new(2016,1,1,8,0))
n.where("?", DateTime.new(2016,1,1,8,0))
Если так сделать то нормально передается в mysql , то-то до сих пор нормально работала

Alex
09.09.2016
01:31:40
Нормально передается это когда в UTC

Amir
09.09.2016
01:31:45
просто в консоли решил потестить и хотел передать текущее время Datetime.now
а в запросе вижу фигню без тайм зоны
Наверно

Alex
09.09.2016
01:32:21
в запросе видишь нормальный вариант, в utc, но полностью его игнорируешь

Amir
09.09.2016
01:34:22
DateTime.now выдает с таймзоной
DateTime.new(2016,1,1,8,0) без тайм зоны

Alex
09.09.2016
01:36:36
потому что таймзону не указал
он и берет утц по дефолту
от UTC нужно отнять 0 часов чтобы получить время по UTC

Amir
09.09.2016
01:37:23
ага

Google

Alex
09.09.2016
01:38:03

Amir
09.09.2016
01:38:42
Имею ввиду почти понял
мне сейчас надо, из DateTime.now
удалить признак таймзоны

Alex
09.09.2016
01:39:24
зачем?

Amir
09.09.2016
01:39:41
Чтобы рельцы при передачи в майск не конвертировали в утс

Alex
09.09.2016
01:39:56
зачем?

Amir
09.09.2016
01:41:37
чтоб в запросе
Foo.where("?" DateTime.now)
в майск время попал такой какой я вижу в своих часах

Alex
09.09.2016
01:41:50
Ты считаешь что рельсы добавляют ошибки при подсчете времени, на самом деле ты пытаешься добавить ошибку которой нет
Т.е рельсы как раз делают правильно что переводят в UTC, а ты пытаешься сделать ошибку в вычислениях
если ты не делаешь реальное приложение то ты можешь врубить те две настройки выше. Но если реальное - то забей.

Amir
09.09.2016
01:42:54
Но так ведь время в базе данных сами рельца и записали

Alex
09.09.2016
01:43:02
Забавно как иногда человек целеустремленно хочет выстрелить себе в ногу

Alex
09.09.2016
01:43:13
Вот именно что они сами туда это записали

Amir
09.09.2016
01:43:17
а почему тогда в моем обычном запросе
чисто рельцовском стиле
в майск время попадает в УТС?

Alex
09.09.2016
01:43:22
и точно также они знают как правильно запрашивать его в запросе
чтобы не накосячить с таймзонами
рельсы автоматом туда сюда конвертируют.

Amir
09.09.2016
01:43:52
считаешь тогда ActiveAdmin не правильно записал?

Alex
09.09.2016
01:43:54
UTC?

Google

Alex
09.09.2016
01:44:06
запрос делаешь по UTC?
в чем проблема то?
то что у тебя в майке почему то вдруг показывает локальную временную зону?

Amir
09.09.2016
01:44:56
Foo.where("?" , DateTime.now)
в запросах вида этого вообще некорректные данные выходят

Alex
09.09.2016
01:45:06
Считаю что AR нормально сработал, и точно также AR нормально срабатывает при запросе.

Amir
09.09.2016
01:45:17
вижу что не нормально срабатывает
если только передать дату сгенерированную как DateTime.new(123,123,123,123)(

Alex
09.09.2016
01:45:34
ненормально это как?

Admin
ERROR: S client not available

Amir
09.09.2016
01:45:48
тогда дата без тайм зоны и запросы идут нормальные в майскл

Alex
09.09.2016
01:45:51

Amir
09.09.2016
01:46:30
DateTime.new
DateTime.now
разные проверь
у второй будет тайм зона вида +XXXX

Alex
09.09.2016
01:47:17
+0000
+0300

Amir
09.09.2016
01:47:37
ну вот
первый вариант нормально работает с базой данных
второй уже конвертирует в утс, в базе совсем другие данные попадают

Google

Alex
09.09.2016
01:48:09
https://makandracards.com/makandra/4601-use-time-current-date-current-datetime-current-on-projects-that-have-a-time-zone
Заебал
.new шлет в базу в UTC
че те блять не ясно то?
потому и шлет в том же виде что таймзона нулевая
т.е UTC
а .now/current таймзонные
соответственно переводятся в UTC перед запросом
я все еще не понимаю в чем у тебя проблема.

Amir
09.09.2016
01:49:10
да блять
Если DateTime.current
сделать у меня время по ЛОНДОНУ!

Alex
09.09.2016
01:49:41
А в рельсах какую временную зону настроил?
With time zones configured, always use .current for Time, Date, and DateTime.
ActiveRecord attributes will be time-zoned, and .current values will be converted properly when written to the database.
Do not use Time.now and friends. Timezone-less objects will not be converted properly when written to the database.
2.1.1 :004 > Rails.application.config.time_zone
=> "Moscow"

I
09.09.2016
02:32:00
А почему DateTime.new или DateTime.now, а не Time.zone.now?

Vitaly
09.09.2016
05:08:51
извините за оффтоп но ради угара гляньте:
https://moikrug.ru/vacancies/1000028589
они бы написали лучше так - Требуется Дворник со знанием Веб-дизайна и тп
у них кстати все вакансии с 25к начинаются

Nikolay
09.09.2016
06:49:00
ляя... deb пакет клиента вайбера весит 80 метров. распаковывается в 350.. ШТО они туда напихали?

Vitaly
09.09.2016
06:53:13

Andrey ?
09.09.2016
07:36:49

Nikolay
09.09.2016
07:37:10
скорее виртуалка ондроеда
говорят что линукховый скайп таки хром с блекджеком