2011-03-29 2 views
5

우리는 Mac에서 Safari를 제외한 모든 브라우저에서 작동하는 간단한 기능을 가지고 있습니다 (Mac의 Chrome에서 작동하고 PC의 Safari에서 작동 함).Mac (사파리) toLocaleTimeString()의 Javascript toLocaleTimeString() oddities

11시 59분 25초

: 예를 들어

)

new Date().toLocaleTimeString() 

우리는이 같은 형식의 시간을 제공 할 것으로 예상 17,451,515,

그러나, 맥 사파리에 우리가 얻을이

그리니치 표준시 11시 59분 25초 + 01 : 00

우리가 한 시간 (그것의 시간을 추가 밖으로이 시간에 할 모든 계산 계산에)

예 : 11:59:25 - 11:59:25 = 01:00:00 (00:00:00이어야 함)

아이디어가 있으십니까?

문자열에 시간대를 추가하는 이유는 무엇입니까? 이로 인해 데이터베이스에 약간의 문제가 발생했습니다.

스팅에 시간을 추가하는 이유는 무엇입니까?

왜 저 블러디 브라우저에!

감사합니다.

+0

이 오래된 질문이지만, 내가 매우 관심이 답변에서뿐만 아니라입니다. – KonstantinK

답변

3

toLocaleTimeString 메서드는 날짜 형식을 지정하는 기본 운영 체제에 의존합니다. 스크립트가 실행되는 운영 체제의 형식 규칙을 사용하여 날짜를 문자열로 변환합니다. 예를 들어 미국에서는 월이 날짜 이전 (04/15/98)에 표시되지만 독일에서는 날짜가 월 (15.04.98) 전에 표시됩니다.

getHours, getMinutes 및 getSeconds와 같은 메소드는 toLocaleTimeString보다 일관된 결과를 제공합니다. 사용자가 선택한 지역 형식을 사용하여 형식이 지정된 문자열을 사용자에게 표시하려는 경우 toLocaleTimeString을 사용합니다. 이 메서드는 특성상 운영 체제 및 사용자 설정에 따라 다르게 동작합니다.

출처 : https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString OS X에서

0

가, 시간 형식이 잘 Apple 메뉴> 시스템 환경 설정> 언어 & 지역> 고급> 시간으로 조정할 수 있습니다. toLocaleTimeString()이 사용하는 형식은 Long 형식입니다. 필요에 따라 형식을 조정할 수 있지만이 변경 사항은 시스템 전체에서 효과적 일 수 있습니다.

출처 : Apple Support - Customize Formats