복붙노트

[JQUERY] 타임 존의 이름을 가져옵니다

JQUERY

타임 존의 이름을 가져옵니다

해결법


  1. 1.호는 $ jQuery를 부탁해 ()은 하나의 일자 / 시간 함수를 갖는다.

    호는 $ jQuery를 부탁해 ()은 하나의 일자 / 시간 함수를 갖는다.

    자바 스크립트를 의미하는 경우, 대답은 '노 아직 없습니다. 당신은 date.getTimezoneOffset에서, 타임 존 오프셋 (offset)를 얻을 수있다 (). 당신은 시간대를 얻을 수 없다 - 적어도 모든 브라우저에서. 라는 제목의 시간대 태그 위키의 섹션을 참조하십시오 : "시간대 = 오프셋"

    당신은 jsTimeZoneDetect 라이브러리를 사용하여 시간대에서 추측 할 수 있지만, 그것은 단지 추측이다. 그것은 수도 있고 정확하지 않을 수 있습니다.

    또한 지금이 순간 - 시간대 추가로 moment.js를 사용할 수 있습니다. 그것은 지금 moment.tz.guess으로 추측 시간대를 지원합니다 ().

    당신은 사용자가 완전히 ECMAScript를 국제화 API를 지원하는 환경에서 실행되고 보장 할 수있는 경우는 다음과 같이 사용자의 시간대를 얻을 수 있습니다 :

    Intl.DateTimeFormat().resolvedOptions().timeZone
    

    당신은 DateTimeFormat에서 호환성 테이블을 검토 할 수 있습니다 - resolvedOptions ()를 시간대 기본값을 호스트 환경이의 작동 환경을 결정하는..

    솔직히, 할 수있는 가장 좋은 방법은 사용자에게 그들의 시간대를 선택할 수있는 화면 어딘가에을 제공하는 것입니다. 당신은 드롭 다운 목록을 사용할 수 있습니다, 또는 당신은지도 기반의 시간대 선택 도구를 사용할 수 있습니다 -이처럼. 당신은 기본값으로 jsTimeZoneDetect를 사용할 수 있지만 사용자가 변경할 수 있어야합니다.

    또한,이 모든는 미국 / 로스 엔젤레스로, 당신에게 IANA 시간대 식별자를 제공 할 것입니다. 그러나 당신이 준 예 (.NET에서 TimeZoneInfo 중 사용하기 위해) Windows 표준 시간대 식별자가 될 것으로 보인다. Windows 및 IANA 시간대를 번역하는 방법 : 당신은 또한 다음이 질문을 시간대 태그 위키를 읽고해야합니까?


  2. 2.새 Date ()의 출력은 수요일 8월에게 14 2013 그리니치 표준시 22시 02분 13초-0700 (태평양 일광 절약 시간), 당신이 사용할 수 있습니까? 당신이 공식 이름이 필요하지 않은 경우, 당신은 단지 괄호 사이에 무엇이 사용할 수 있습니다

    새 Date ()의 출력은 수요일 8월에게 14 2013 그리니치 표준시 22시 02분 13초-0700 (태평양 일광 절약 시간), 당신이 사용할 수 있습니까? 당신이 공식 이름이 필요하지 않은 경우, 당신은 단지 괄호 사이에 무엇이 사용할 수 있습니다

    function getTimeZone() {
        return /\((.*)\)/.exec(new Date().toString())[1];
    }
    
    getTimeZone(); // Pacific Daylight Time 
    

  3. 3.아래 대안은 순수 자바 스크립트와 시간대를 얻을 수있는 방법은 다음과 같음 :

    아래 대안은 순수 자바 스크립트와 시간대를 얻을 수있는 방법은 다음과 같음 :

    (new Date).toString().split('(')[1].slice(0, -1)
    

  4. 4.현재 시간대 표준 이름을 가져옵니다 :

    현재 시간대 표준 이름을 가져옵니다 :

    function getTimezoneName() {
        var timeSummer = new Date(Date.UTC(2005, 6, 30, 0, 0, 0, 0));
        var summerOffset = -1 * timeSummer.getTimezoneOffset();
        var timeWinter = new Date(Date.UTC(2005, 12, 30, 0, 0, 0, 0));
        var winterOffset = -1 * timeWinter.getTimezoneOffset();
        var timeZoneHiddenField;
    
        if (-720 == summerOffset && -720 == winterOffset) { timeZoneHiddenField = 'Dateline Standard Time'; }
        else if (-660 == summerOffset && -660 == winterOffset) { timeZoneHiddenField = 'UTC-11'; }
        else if (-660 == summerOffset && -660 == winterOffset) { timeZoneHiddenField = 'Samoa Standard Time'; }
        else if (-660 == summerOffset && -600 == winterOffset) { timeZoneHiddenField = 'Hawaiian Standard Time'; }
        else if (-570 == summerOffset && -570 == winterOffset) { timeZoneHiddenField.value = 'Pacific/Marquesas'; }
        //                else if (-540 == summerOffset && -600 == winterOffset) { timeZoneHiddenField.value = 'America/Adak'; }
        //                else if (-540 == summerOffset && -540 == winterOffset) { timeZoneHiddenField.value = 'Pacific/Gambier'; }
        else if (-480 == summerOffset && -540 == winterOffset) { timeZoneHiddenField = 'Alaskan Standard Time'; }
        //                else if (-480 == summerOffset && -480 == winterOffset) { timeZoneHiddenField = 'Pacific/Pitcairn'; }
        else if (-420 == summerOffset && -480 == winterOffset) { timeZoneHiddenField = 'Pacific Standard Time'; }
        else if (-420 == summerOffset && -420 == winterOffset) { timeZoneHiddenField = 'US Mountain Standard Time'; }
        else if (-360 == summerOffset && -420 == winterOffset) { timeZoneHiddenField = 'Mountain Standard Time'; }
        else if (-360 == summerOffset && -360 == winterOffset) { timeZoneHiddenField = 'Central America Standard Time'; }
        //                else if (-360 == summerOffset && -300 == winterOffset) { timeZoneHiddenField = 'Pacific/Easter'; }
        else if (-300 == summerOffset && -360 == winterOffset) { timeZoneHiddenField = 'Central Standard Time'; }
        else if (-300 == summerOffset && -300 == winterOffset) { timeZoneHiddenField = 'SA Pacific Standard Time'; }
        else if (-240 == summerOffset && -300 == winterOffset) { timeZoneHiddenField = 'Eastern Standard Time'; }
        else if (-270 == summerOffset && -270 == winterOffset) { timeZoneHiddenField = 'Venezuela Standard Time'; }
        else if (-240 == summerOffset && -240 == winterOffset) { timeZoneHiddenField = 'SA Western Standard Time'; }
        else if (-240 == summerOffset && -180 == winterOffset) { timeZoneHiddenField = 'Central Brazilian Standard Time'; }
        else if (-180 == summerOffset && -240 == winterOffset) { timeZoneHiddenField = 'Atlantic Standard Time'; }
        else if (-180 == summerOffset && -180 == winterOffset) { timeZoneHiddenField = 'Montevideo Standard Time'; }
        else if (-180 == summerOffset && -120 == winterOffset) { timeZoneHiddenField = 'E. South America Standard Time'; }
        else if (-150 == summerOffset && -210 == winterOffset) { timeZoneHiddenField = 'Mid-Atlantic Standard Time'; }
        else if (-120 == summerOffset && -180 == winterOffset) { timeZoneHiddenField = 'America/Godthab'; }
        else if (-120 == summerOffset && -120 == winterOffset) { timeZoneHiddenField = 'SA Eastern Standard Time'; }
        else if (-60 == summerOffset && -60 == winterOffset) { timeZoneHiddenField = 'Cape Verde Standard Time'; }
        else if (0 == summerOffset && -60 == winterOffset) { timeZoneHiddenField = 'Azores Daylight Time'; }
        else if (0 == summerOffset && 0 == winterOffset) { timeZoneHiddenField = 'Morocco Standard Time'; }
        else if (60 == summerOffset && 0 == winterOffset) { timeZoneHiddenField = 'GMT Standard Time'; }
        else if (60 == summerOffset && 60 == winterOffset) { timeZoneHiddenField = 'Africa/Algiers'; }
        else if (60 == summerOffset && 120 == winterOffset) { timeZoneHiddenField = 'Namibia Standard Time'; }
        else if (120 == summerOffset && 60 == winterOffset) { timeZoneHiddenField = 'Central European Standard Time'; }
        else if (120 == summerOffset && 120 == winterOffset) { timeZoneHiddenField = 'South Africa Standard Time'; }
        else if (180 == summerOffset && 120 == winterOffset) { timeZoneHiddenField = 'GTB Standard Time'; }
        else if (180 == summerOffset && 180 == winterOffset) { timeZoneHiddenField = 'E. Africa Standard Time'; }
        else if (240 == summerOffset && 180 == winterOffset) { timeZoneHiddenField = 'Russian Standard Time'; }
        else if (240 == summerOffset && 240 == winterOffset) { timeZoneHiddenField = 'Arabian Standard Time'; }
        else if (270 == summerOffset && 210 == winterOffset) { timeZoneHiddenField = 'Iran Standard Time'; }
        else if (270 == summerOffset && 270 == winterOffset) { timeZoneHiddenField = 'Afghanistan Standard Time'; }
        else if (300 == summerOffset && 240 == winterOffset) { timeZoneHiddenField = 'Pakistan Standard Time'; }
        else if (300 == summerOffset && 300 == winterOffset) { timeZoneHiddenField = 'West Asia Standard Time'; }
        else if (330 == summerOffset && 330 == winterOffset) { timeZoneHiddenField = 'India Standard Time'; }
        else if (345 == summerOffset && 345 == winterOffset) { timeZoneHiddenField = 'Nepal Standard Time'; }
        else if (360 == summerOffset && 300 == winterOffset) { timeZoneHiddenField = 'N. Central Asia Standard Time'; }
        else if (360 == summerOffset && 360 == winterOffset) { timeZoneHiddenField = 'Central Asia Standard Time'; }
        else if (390 == summerOffset && 390 == winterOffset) { timeZoneHiddenField = 'Myanmar Standard Time'; }
        else if (420 == summerOffset && 360 == winterOffset) { timeZoneHiddenField = 'North Asia Standard Time'; }
        else if (420 == summerOffset && 420 == winterOffset) { timeZoneHiddenField = 'SE Asia Standard Time'; }
        else if (480 == summerOffset && 420 == winterOffset) { timeZoneHiddenField = 'North Asia East Standard Time'; }
        else if (480 == summerOffset && 480 == winterOffset) { timeZoneHiddenField = 'China Standard Time'; }
        else if (540 == summerOffset && 480 == winterOffset) { timeZoneHiddenField = 'Yakutsk Standard Time'; }
        else if (540 == summerOffset && 540 == winterOffset) { timeZoneHiddenField = 'Tokyo Standard Time'; }
        else if (570 == summerOffset && 570 == winterOffset) { timeZoneHiddenField = 'Cen. Australia Standard Time'; }
        else if (570 == summerOffset && 630 == winterOffset) { timeZoneHiddenField = 'Australia/Adelaide'; }
        else if (600 == summerOffset && 540 == winterOffset) { timeZoneHiddenField = 'Asia/Yakutsk'; }
        else if (600 == summerOffset && 600 == winterOffset) { timeZoneHiddenField = 'E. Australia Standard Time'; }
        else if (600 == summerOffset && 660 == winterOffset) { timeZoneHiddenField = 'AUS Eastern Standard Time'; }
        else if (630 == summerOffset && 660 == winterOffset) { timeZoneHiddenField = 'Australia/Lord_Howe'; }
        else if (660 == summerOffset && 600 == winterOffset) { timeZoneHiddenField = 'Tasmania Standard Time'; }
        else if (660 == summerOffset && 660 == winterOffset) { timeZoneHiddenField = 'West Pacific Standard Time'; }
        else if (690 == summerOffset && 690 == winterOffset) { timeZoneHiddenField = 'Central Pacific Standard Time'; }
        else if (720 == summerOffset && 660 == winterOffset) { timeZoneHiddenField = 'Magadan Standard Time'; }
        else if (720 == summerOffset && 720 == winterOffset) { timeZoneHiddenField = 'Fiji Standard Time'; }
        else if (720 == summerOffset && 780 == winterOffset) { timeZoneHiddenField = 'New Zealand Standard Time'; }
        else if (765 == summerOffset && 825 == winterOffset) { timeZoneHiddenField = 'Pacific/Chatham'; }
        else if (780 == summerOffset && 780 == winterOffset) { timeZoneHiddenField = 'Tonga Standard Time'; }
        else if (840 == summerOffset && 840 == winterOffset) { timeZoneHiddenField = 'Pacific/Kiritimati'; }
        else { timeZoneHiddenField = 'US/Pacific'; }
        return timeZoneHiddenField;
    }
    

  5. 5.내가 moment.js으로 사용하고이 스크립트를 찾을 수 :

    내가 moment.js으로 사용하고이 스크립트를 찾을 수 :

    http://pellepim.bitbucket.org/jstz/

    이 스크립트는이 exemple처럼, 브라우저의 시간대의 이름을 얻을 수 있습니다 :

    > var timezone = jstz.determine();
    > timezone.name(); 
    "America/New_York"
    

    그것은 그러나, jQuery를하지 않을 ...


  6. 6.순수 자바 스크립트에서 정규 표현식을 사용하여

    순수 자바 스크립트에서 정규 표현식을 사용하여

    var d = new Date();
    var s = d.toString();
    var zoneName = s.match(".*(\\((.*)\\))")[2];
    

  7. 7.jQuery를 사용하여 할 수있는 방법을 생각 할 수 없습니다. 당신은 PHP를 사용하여 원격 사용자의 국가 이름을 얻을 후 출력을 비교할 수 있습니다

    jQuery를 사용하여 할 수있는 방법을 생각 할 수 없습니다. 당신은 PHP를 사용하여 원격 사용자의 국가 이름을 얻을 후 출력을 비교할 수 있습니다

    1) 빛 절약 시간 (많은되지 않음) 적용 국가의 배열입니다.

    2) 현재 날짜.

    사용자의 국가를 얻으려면 : visitor_country 함수 () { $ IP = $ _SERVER [ "REMOTE_ADDR"]; 경우 (filter_var (@ $ _ SERVER [ 'HTTP_X_FORWARDED_FOR'] FILTER_VALIDATE_IP)) $ IP = $ _SERVER [ 'HTTP_X_FORWARDED_FOR']; 경우 (filter_var (@ $ _ SERVER [ 'HTTP_CLIENT_IP'] FILTER_VALIDATE_IP)) $ IP = $ _SERVER [ 'HTTP_CLIENT_IP']; $ 결과 = @json_decode (file_get_contents ( "http://www.geoplugin.net/json.gp?ip=". $ IP)) -> geoplugin_countryName; $ 결과 <> NULL을 반환? $ 결과 : "알 수없는"; } 에코 visitor_country (); // 출력 국가 이름 [예 : 미국] ?> 이 세상 시간대 맵 링크가 배열을 만드는 데 사용할 수 있습니다 : http://www.worldtimezone.com/daylight.html 당신이 아이디어 작품을 희망!


  8. 8.이 링크 시간대 jQuery를 사용하여 당신을 도움이 될 수 있습니다

    이 링크 시간대 jQuery를 사용하여 당신을 도움이 될 수 있습니다

    또는 코드를 다음은 유를 도움이 될 수 있습니다

    var offset = (new Date()).getTimezoneOffset();
    alert(offset);
    

    체크 아웃 JSFIddle 구현 또는 추가 설명은 스콧에 의해 해결을 참조하십시오

    만 시간대를 들어

    function get_time_zone_offset( ) {
        var current_date = new Date();
      alert(current_date);   
      //return -current_date.getTimezoneOffset() / 60;
    
    }
    

    경고 팝업, 당신은 당신의 필요 조건에 따라 요인을 다시 할 수있는뿐만 아니라 시간대를 표시 JS 바이올린에 그것을 확인합니다


  9. 9.moment.js + 순간 timezones.js를 사용하여

    moment.js + 순간 timezones.js를 사용하여

    moment.tz.guess ();

    https://github.com/moment/moment-timezone/issues/138


  10. 10.이 사이트는 멋진 예제를 가지고

    이 사이트는 멋진 예제를 가지고

    https://www.geeksforgeeks.org/javascript-date-now/

    // Use of Date.now() function 
    var d = Date(Date.now()); 
    
    // Converting the number of millisecond in date string 
    a = d.toString() 
    
    // Printing the current date                     
    document.write("The current date is: " + a)  
    

  11. 11.이 질문은 오래 알고 있지만, 여기에 내가 생각 해낸 약간의 솔루션입니다 :

    이 질문은 오래 알고 있지만, 여기에 내가 생각 해낸 약간의 솔루션입니다 :

    (new Date).toLocaleString('en-US', {
        hour12: false,
        hour: '2-digit',
        timeZoneName: 'long'
    }).replace(/^\d\d /, '');
    

    나는 널리이 테스트를하지 않은,하지만 브라우저이 날 수 있습니다 :

    "Mountain Daylight Time"
    

    이 사람을 도움이 밖으로 바랍니다.


  12. 12.이 직접적인 방법은 없지만, 당신은이 작업을 수행 할 수 있습니다

    이 직접적인 방법은 없지만, 당신은이 작업을 수행 할 수 있습니다

    var에 DD 새로운 날짜 () =; VAR D는 dd.toString을 () =;

    했다 startOff d.indexOf = ( '(') + 1; 했다 endOff d.lastIndexOf = ( ')');

    VAR STR = d.substring (startOff, endOff);

    난 당신이 경고와 함께 참조하십시오 JS 바이올린을 만들었습니다 : JSFiddle

    var dd = new Date();
    var d = dd.toString();
    
    alert(d);
    var startOff= d.indexOf('(') + 1;
    alert(startOff);
    var endOff= d.lastIndexOf(')');
    alert(startOff+ "  : " + endOff);
    
    var str = d.substring(startOff , endOff);
    alert(str);
    
  13. from https://stackoverflow.com/questions/18246547/get-name-of-time-zone by cc-by-sa and MIT license