에 리드
프로젝트를 작성할 때 최근에, 시간 표시에 따라 다른 것으로, 직접 사용은 new Date().getTime()
현재 시간, 문제에 결과를 얻을 수 있습니다. 획득 시간의 결과로, 자신의 현지 시간을 수정할 수 일부 사용자는 당황, 현재 시간이 아니다.
사고
경우 인 것을 첫 번째 생각은 한 위에 타임 스탬프 서버 패스로, 시간 서버 기준으로 현지 시간을 수 있도록하는 것입니다. 어떻게 그 동적 시간을 얻으려면? 결국, 당신은 항상 서버 그것에 갈 시간을 얻을 수 없습니다. 거친 생각만큼으로 알고 그것을 추가 동적으로 다음 서버 시간이 너무 긴 얻을합니다. 무엇이 시간 차이를 기록하는 경우?
처음에는 생각에서, 특정 시점을 기록 할 때 서버 시간 (액세스 gainServerTime
), 현재 시점과 gainServerTime
오랜 통해 얻을 수 뺍니다. 사용자가 시간을 입력 한 후 페이지를 수정하는 경우, 당신은이 문제가 해결되지 않는, 잘못된 시간 차이를 얻을 것이다.
그럼, 타이머의 초 녹화 시간 생각 experienceTime
물론, 약간의 성능을 희생, 초당 일을하지만, 문제는 내가 더 나은 방법을 생각할 수 없다.
실현
/ * * * 금회의 오브젝트를 취득 파라미터 : ServerTime은 * 서버 소인 (들) * / 기능 GetNowDate (ServerTime) { 이 .serverTime = || ServerTime 새로운 새 일 ()을 다음 getTime는 (); // 경과 시간 기록 이 .experienceTime = 0 ] 이 본 .init () } / * * * 현재 타임 스탬프 얻기, 밀리 * / GetNowDate.prototype.getTime = 함수 () { 반환 이 본 .getDateObject ()을 다음 getTime (); }; / * * * 현재 시간 날짜 개체를 얻을 수 * / GetNowDate.prototype.getDateObject는 = 함수 () { 반환 새 새 날짜 ( 다음은이 .getNowMilliTime을 ()); }; //이 현재의 밀리 초 타임 스탬프 얻을 GetNowDate.prototype.getNowMilliTime = 함수 () { 반환 ( 다음은이 .serverTime +를 은이 .experienceTime) * 1000 ] } //이 객체 초기화 GetNowDate.prototype.init = 함수 () { //는 타이머 동적 증가 시간 설정 VAR의 _this를 = 이 본 ; 하여 setInterval ( 함수() { _this.experienceTime ++ ; }, 1000 ); };
물론, 문제를보고 많이있다, 그리고 경험 후를 완벽하게
클라우드 코드 주소 https://gitee.com/hujingnb/jsTool