이벤트 페이지에 날짜와 시간이 표시됩니다. 로그인 한 회원의 경우 선호하는 표준 시간대를 가져올 수 있습니다. 하지만 로그인하지 않은 사용자의 경우 먼저 랩톱 시간대를 감지하여 해당 페이지를 현지 시간대로 표시하고 싶습니다.
나는 application.html.erb에서 jQuery를 사용
모든 데이터로드 전의 시간대를 감지하십시오.
<% if session[:time_zone].blank? %>
<script type="text/javascript">
jQuery.ajax({
data: {user_time_zone: $().get_timezone()},
type: 'post',
url: "/set_time_zone_session"
})
</script>
질문 : 처음에, 페이지가 기본 시간대를 보여줍니다 있도록 그것은 지난 jQuery를 실행합니다. 페이지를 새로 고친 후 모든 하위 시퀀스 요청 시간대가 올바르게 설정됩니다. 게다가 자바 스크립트로 첫 번째 요청 후 페이지를 다시로드하십시오. 더 좋은 방법이 있습니까?
엑스트라 : 페이지를 새로 고침해야하는 경우. 나는 location.reload()를 추가한다. jQuery 호출 후. 재로드는 첫 번째 요청이 완료된 후에 발생합니다. 첫 번째 요청이로드되기 전에 페이지를 바로 새로 고치는 방법이 있습니까? 그렇지 않으면 페이지가 두 번로드되는 것이 이상하게 들릴 것입니다.
javascript 함수 getTimezoneOffset을 살펴보십시오. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/ getTimezoneOffset – Archer