질문/조언질답게시판

해외 서버를 사용중입니다.  타임존은 America/New_York 입니다.

먼저 XE 사용할 때는 이런 문제가 없었습니다.

 

 

증상은, 출석부 또는 확장변수에서 '일자 연월일' (캘린더 형식) 날짜를 클릭해서 입력하면 선택한 날짜 보다 하루 전 날짜가 출력이 됩니다. 

 

XE에서 달력 형태의 확장변수를 수 없이 사용할 일이 있어 그런 문제가 없었음은 보장합니다. 라이믹스로 넘어와서는 확장변수에서 그 기능을 사용할 일이 없어서 지금까지 모르고 있다가 다시 사용해 볼까 하던 차에 문제가 있음을 확인했습니다.

 

전 처음에 람보님 출석부 모듈만의 문제인 줄 알고 출석부에서는 그냥 달력 부분을 가리고 사용하고 있었습니다. 지금 보니 달력 형태의 입력이 모두 문제였네요.

 

아래 스크린샷 보시면 선택은 오늘 날짜로 잘 표시되어 나옵니다. 그런데 클릭해서 날짜를 입력하고 등록을 누르면 하루 전 날짜로 입력이 되어 있습니다.

 

타임 존 설정은 php.ini나 라이믹스 시스템 설정에 확실하게 잘 되어 있습니다.

 

calendar.PNG

혹시 해외 서버 사용중이신데 위와 같은 동일한 현상이 있으신 분 계신가요? 글등록이나 이런 건 제 날짜와 시간에 아무런 문제없이 잘 되고 있습니다.

 

지금 정신이 없어서 두서가 좀 없습니다. 감사합니다.

  • profile

    출석부 모듈은 라이믹스의 타임존 처리 방식에 대응이 되어 있지 않습니다. 따라서 대한민국 표준시 이외의 시간대에서는 완전 엉망이 됩니다.

     

    그 밖의 부분에서도 문제가 생긴다면 아래의 3가지 타임존을 모두 확인해 주세요.

    - 서버 자체의 타임존 (date 명령)

    - 라이믹스 서버 환경 표시 메뉴에 나오는

        - locale.default_timezone

        - locale.internal_timezone

     

    참고: https://github.com/rhymix/rhymix-docs/blob/master/ko/misc/timezone.md

  • profile ?

    답변 감사합니다. 설정에 문제는 없는 것 같은데... 서버는 마운틴 스탠다드 타임입니다.  현재 shared hosting이기 때문에 서버는 쟤가 어쩔 수 없는 부분이지만, XE 때도 같은 환경이었습니다.

    출석부는 뭐 캘린더를 없앴으니 더 이상 문제가 아닌데 확장변수가 문제입니다. 글등록이나 다른 것들은 모두 정상인데 캘린터형 인풋만 그러네요.

    system_time_zone MDT
    time_zone SYSTEM
     

    Thu Feb 21 13:03:53 MST 2019
    locale.default_timezone : America/New_York
    locale.internal_timezone : -14400

  • ? profile
    음... 날짜를 잘못 인식하는 것은 대개 두 시간대 사이에 날짜가 바뀌어서 생기는 현상인데요. MST와 뉴욕 시간, 한국 시간이 모두 같은 날짜일 때(MST 기준 오전 0시~8시 사이)에도 계속 문제가 발생하나요?

    캘린더 선택기는 자바스크립트로 만들어진 것이기 때문에 또 한 가지 변수가 있습니다. 유저 PC의 시간대에도 영향을 받는지, 날짜 선택 직후 (폼을 제출하기 전에) 인풋에 입력된 날짜는 선택한 날짜가 맞는지, 그리고 DB에 실제 저장된 날짜는 선택한 날짜가 맞는지 (즉, 처음부터 잘못 저장되는지, 아니면 제대로 저장된 것을 잘못 표시하는 것 뿐인지) 확인해 보세요.
  • profile ?
    확인해 보겠습니다. 감사합니다.
  • profile ?

    일단 글을 등록한 날짜는 1시간이 차이납니다. 현지 시각 오후 9시 20분에 테스트 글을 올렸는데 db에 보니 22시 20분이라고 표시가 됩니다. 이것은 DST, 즉 써머타임이 원인인 것 같구요. 게시판에 등록된 글에서 표시는 9시 20분으로 표시가 제대로 되고 있습니다.

    확장변수 부분에서 달력으로 입력한 날짜가 db에서는 입력한 대로 02/21로 잘 입력이 되어 있습니다. 날짜 선택 직후 폼을 제출하기 전에 입력된 날짜는 선택한 날짜가 맞습니다. 등록을 누르면 02/20으로 표시가 바뀌어 표시가 됩니다.

    조금 후 0시 - 08시에 MST와 EST, KST가 모두 같은 날짜일 때 테스트 해보겠습니다.

  • ? profile
    이제 보니 위에 올려주신 스샷에서 system time zone이 MDT로 되어 있네요. 지금 한겨울인데;;;

    시스템 자체의 타임존이 잘못 설정되어 있으니 라이믹스가 헷갈리고 있는 건지도 모르겠습니다. 시스템에서 제공하는 타임존 정보에 의지하도록 되어 있거든요. 써머타임을 하려면 제대로 하던가, 아니면 아예 하지 말던가... 이런 어정쩡한 웹호스팅 서버들 때문에 미국은 진짜 짜증나요 ㅜㅜ
  • profile ?
    네, 서버는 덴버에 위치해 있는데 그 인간들도 써머타임을 할텐데 DST 업데잇 안 하냐고 물어보면 shared hosting 써버 시간은 바꾸지를 못한다는 대답뿐. 그냥 더 좋은 플랜으로 업그레이드를 하라는 식이죠. 저도 짜증이 나서 약정 기간만 끝나면 옮기려고 벼르고 있습니다. 그래도 어정쩡한 웹호스팅은 아니고 블루호스트라고 미국에서 점유율 1위 하는 회사죠.
  • ? profile
    네, 블루호스트 유명하죠. 서버 상태 어정쩡하게 운영하는 건 유명업체나 중소업체나 모두 하향평준화되어서 차이가 없지만요... 큰 회사라면 직원도 많고 고객도 전세계에 흩어져 있을 테니 UTC로 통일하는 것이 당연한데, 오히려 더 개념이 없습니다 ㅋㅋㅋ
  • profile ?
    세 곳 모두 같은 날짜일 때 테스트 해봤는데 역시 하루 전으로 입력이 됩니다. 그럼 자바 스크립트를 수정을 해야 할까요? 수정해야 할 파일이 있는 위치가 여기가 이곳일까요? /common/js/plugins/ui.calendar