2012-04-13 2 views
2

나는 시간대를 가지고 노는 중이며 간단한 등록 양식이 있습니다. 사용자 등록 후 사용자에게 현재 시간을 표시하고 싶습니다. 어떻게해야합니까?Ruby - 현재 사용자의 시간을 얻는 방법?

+0

사용자 위치를 알고 계십니까? 그 정보로 현지 시간을 파악할 수 있습니다. –

답변

3

Ruby에서만 사용할 수있는 정보는 서버 측에서 사용할 수 없기 때문입니다.

1) 사용자의 위치를 ​​알고있는 경우 지리적 위치 지정 및 determine the timezone을 수행 할 수 있습니다. 하지만 지리적 데이터베이스에서 가져온 IP 범위에 몇 가지 시간대가 있으면 문제가 될 수 있습니다.

2) 다른 해결책은 자바 스크립트를 사용하여 도움을 얻을 수 있습니다. 그래서 자바 스크립트를 사용하여 시간대를 계산하고이를 쿠키로 설정 한 다음 요청 객체에서 Ruby로 액세스 할 수 있습니다. (How to get timezone with Javascript)

+0

흠, 가능성을 읽었을 때 가장 좋은 해결책은 사용자가 자신의 시간대를 설정하고이 시간대를 설정하는 것이라고 생각합니다 ... 감사합니다. – user984621

+0

은 구현하기 전에 항상 생각합니다 ... 사용자가 너무 지루하지 않는 UX 문제입니다 (사용자가 너무 많은 불필요한 작업을하지 않아도 됨). 사용자가 계정에 올바른 시간을 필요로하지 않고 원하는 시간에만 원하는 경우 사용자에게 선택 시간대와 같은 작업을 요청하지 않는 것이 좋습니다. – gakhov

1

사용자는 등록 중에 현재 시간대를 묻고 사용자 세부 정보를 유지할 수 있습니다.

ActiveSupport (Rails API의 일부로 포함)는 시간대를 처리하는 가장 좋은 방법을 제공하므로 * in_time_zone *을 사용하여 현재 시간을 다른 시간대의 시간으로 변환 할 수 있습니다. 추가 정보를 http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html

참조 TimeWithZone, http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html#method-i-in_time_zone 다음 TIME_ZONE 키가이 API 문서를 통해 확인할 수 있습니다 예를 들어

Time.now.in_time_zone("America/Guyana") 
Time.now.in_time_zone(8) 

으로

.

관련 문제