Правильно хранящие даты с TimeZone в MySQL DB для приложения направляющих

Используя Microsoft.Reactive, вы можете сделать это довольно просто, и вы будете проходить только один раз по источнику.

IEnumerable<string> source = new List<string>{"1", "2", "3", "4", "5", "6"};

IEnumerable<IEnumerable<string>> splited = source.ToObservable().Buffer(3).ToEnumerable();
5
задан Joshua Partogi 8 June 2010 в 12:43
поделиться

3 ответа

В этом сообщении в блоге рассказывается о встроенной обработке часовых поясов в Rails 2.1+:

http://mad.ly/2008/04/09/rails-21-time-zone-support -an-overview /

Суть в том, что Rails будет хранить все записи в БД в формате UTC, а затем преобразовывать их в часовой пояс пользователя для отображения. В этом есть смысл: сохранить все данные в нейтральной форме, а затем преобразовать их в желаемую форму в последнюю минуту.

4
ответ дан 14 December 2019 в 19:23
поделиться

Перед установкой даты необходимо установить часовой пояс в объекте данных.

0
ответ дан 14 December 2019 в 19:23
поделиться

Основываясь на вашем ответе на мой комментарий, я бы сказал, что просто сохраните date на основе времени локального сервера, затем используйте JavaScript Date :: toLocaleString (), чтобы преобразовать его в местный часовой пояс. Пару лет назад я написал об этом статью, которую вы можете найти здесь .

JS статьи был написан на MooTools, но с тех пор я переписал его с помощью jQuery, поэтому покажу этот код.

Важные части:

При рендеринге в HTML используйте миллисекунды, прошедшие с эпохи.

<span class="dt"><!-- <%= blah.created_at_epoch_ms %> --><%= blah.created_at %></span>

Для чего требуется метод в вашей модели, определенный следующим образом:

def created_at_epoch_ms
    self.created_at.to_i * 1000
end

JS для преобразования дат:

$(document).ready(function(){
        $('span.dt').each(function(){
                var date = new Date();

                date.setTime(this.firstChild.data);

                $(this).parent().text(date.toLocaleString());
        });
});

Это должно преобразовать строку в местное время пользователя, и волшебство произойдет в toLocaleString (). Единственный браузер, о котором я слышал, не Я использую Safari 2.0, что не должно вызывать особых проблем, поскольку я думаю, что большинство пользователей перешли на него.

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

<!-- 1243484521000 -->2009-05-28 04:22:01 UTC

Который конвертируется в моем браузере (центральное время) в

Wednesday, May 27, 2009 11:22:01 PM

. Если у них включен JS, он принимает значение узла комментария, преобразует его и заменяет вся строка (включая время UTC) с местным временем. Если JS отключен, они будут видеть время так, как его видит сервер.

s, отправленные в браузер, выглядят так:

<!-- 1243484521000 -->2009-05-28 04:22:01 UTC

Что преобразуется в моем браузере (центральное время) в

Wednesday, May 27, 2009 11:22:01 PM

. Если у них включен JS, он примет значение узла комментария, преобразует его и заменит всю строку (включая время UTC) с местным временем. Если JS отключен, они будут видеть время так, как его видит сервер.

s, отправленные в браузер, выглядят так:

<!-- 1243484521000 -->2009-05-28 04:22:01 UTC

Что преобразуется в моем браузере (центральное время) в

Wednesday, May 27, 2009 11:22:01 PM

. Если у них включен JS, он примет значение узла комментария, преобразует его и заменит всю строку (включая время UTC) с местным временем. Если JS отключен, они будут видеть время так, как его видит сервер.

1
ответ дан 14 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: