2012-05-15 5 views
1

У нас есть приложение, которое построено на PHP. В приложении мы предоставили возможность выбрать их соответствующий часовой пояс, и для каждого часового пояса мы сохранили соответствующий идентификатор часового пояса php (как указано here) в базе данных.Использование php-специфического сохраненного часового пояса в ruby ​​

Теперь мы переносим все серверные процессы, связанные с этим приложением, на Ruby, но проблема, с которой мы сталкиваемся сейчас, - это как обрабатывать часовой пояс, поскольку они хранятся в формате php. Как их использовать в рубине? Есть ли библиотека/gem, которая может конвертировать php формат часового пояса в рубин? есть ли аналогичный php, например date_default_timezone_set?

+0

Любая причина, по которой вам нужно, не может обновить поля базы данных, чтобы использовать более стандартный формат? Эти идентификаторы устаревают даже в PHP. –

+0

Да ... На самом деле, я ищу стандартное решение, вы можете предложить один –

ответ

0

Как сказал Эндрю, лучшим вариантом является полное избавление от часовых поясов PHP, если это возможно. Следующее лучшее было бы создать отображение из зон PHP в нечто вроде ActiveSupport имен зон.

Вы можете использовать это, чтобы помочь вам с отображением:
http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html

Для тех отображений, которые не соответствуют direcly между PHP и ActiveSupport::TimeZone вы должны вручную создать отображение. Однако вначале не так много зон в спецификации PHP, поэтому правильное отображение не должно быть слишком большим.

EDIT

Вы можете включить ActiveSupport отдельно в любое приложение Ruby. Вы даже можете установить драгоценный камень отдельно (gem install activesupport). Вы не можете использовать приложение Rails для его использования.

Однако, если вы хотите использовать что-то подобное, но не Рельсы связаны между собой, вы посмотрите на TZInfo библиотеки могут:

http://tzinfo.rubyforge.org/
http://tzinfo.rubyforge.org/doc/

Там нет стандартного решения для преобразования между временем PHP зон и зон Ruby. Если вы переходите на Ruby, тогда начните преобразовывать все в TZInfo данных типа.

+0

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

+0

Ссылка, которую вы указали, предназначена для рельсов, тогда как я ищу решение в рубине –

+0

@BilalBudhani См. Мое редактирование .. – Casper

Смежные вопросы