2012-11-05 7 views
22

이 기능은 직접 설정할 수 있지만 기능은 sooo입니다. 다른 누군가가 이미 내 Rails보다 더 빠르고 더 빨랐을 것 같습니다. 앱.무료 휴식 API는 현재 시간을 문자열로 가져옵니다. (시간대와 무관 함)

문자열로 현재 시간이 필요합니다. 내 방문자가 세상에있을 때마다 1 초 이내에 다시 방문하고 싶습니다. (저는 카운트 다운 타이머를 만들고 있으며, 사용자의 가능성있는 컴퓨터 시간보다 더 정확해야합니다.) GMT 시간이 될 수 있습니다. 시간대 ('2012-11-05 16:16:50 EST'와 같이)가 표시되는 한 중요하지 않습니다.

(물론이 API는 간단한 API이지만 내 서버는 미국 동부 해안에 있으며 전체 레일 스택 내에서 작업하고 있습니다. 대규모 소프트웨어 스택을 통해 누군가 필터링하기 레일 같은 단지 문자열이 세련 보인다 반환, 그리고 멀리 미국 동부 해안에서 방문자를위한 대기 시간 걱정하는)

+5

그냥 발견 http://www.timeapi.org/ 예 : 다음은 샘플 응답의 감사 @mvdanj, 이것이 http://www.timeapi.org/utc/now.json – thelostspore

+0

쉽고 빠른 서비스. 이것도 필요했다. – Guus

+0

이것은 거칠지 만 작동합니다 :'wget -q -O - www.worldtimeserver.com/time-zones/cst | grep "서버 시간". 분명히 시간대를 변경할 수 있습니다. 날짜를 얻는 것은 조금 더 많은 작업을 필요로하지만 페이지에 있습니다. 또한 serverTimeStamp에 대해 grep하면 시간 값을 가져올 수 있습니다. 분명히 변환을 수행해야합니다. – kernelsmith

답변

2

레일스를 사용하는 경우 공용 폴더에서 빈 파일을 만들고 아약스를 사용하면됩니다. 그런 다음 날짜 헤더에 parse the headers을 입력하십시오. 공용 폴더의 파일은 레일 스택을 우회하므로 대기 시간이 짧습니다.

+1

503 : Over Quota -이 애플리케이션은 일시적으로 서비 스 쿼터를 초과합니다. 나중에 다시 시도 해주십시오. – MrYellow

+0

서버가 추가 헤더를 허용하지 않는 한 크롬 (및 다른 최신 브라우저?)으로 차단됩니다. – yar1

+0

1/해당 도메인 간 요청에 필요한 CORS 헤더 : 액세스 제어 허용 원점 : * (또는 내 도메인) 액세스 제어 노출 헤더 : 날짜 2/Android 4.1.2에서 관찰 : Control-Expose-Headers는 무시됩니다. Content-Type 헤더 만 받게됩니다. 이런 이유로 도메인 간 요청을 피하십시오. 3/Ajax 요청을 반복하고 브라우저가 응답을 캐시하면 Date 헤더가 수신되지 않을 수 있습니다.따라서이 요청을 여러 번 수행해야하는 경우 캐싱을 방지하기 위해 임의의 쿼리 문자열을 아약스 요청 URL에 추가하는 것이 좋습니다. – figolu

12

TimezoneDb 무료 API 제공합니다. http://timezonedb.com/api

GenoNames 또한 편안하고 API를 가지고를 지정된 위치의 현재 시간을 가져올 수 있습니다 : http://www.geonames.org/export/ws-overview.html.

그리니치 표준시를 사용하려는 경우 영국의 그리니치를 사용할 수 있습니다.

+2

불행히도이 두 가지 모두를 빨아들입니다. GeoNames는 필요한 초를 반환하지 않습니다. 그리고 나는 오직 TimezoneDb로부터 한 번 성공적으로 응답을 얻을 수 있었고, 대개는 403 Forbidden을 제공합니다 (올바른 형식과 키를 사용하고 있음에도 불구하고). 나는 이것이 효과가 있었으면 좋겠다! – chadoh

+0

프론트 엔드에서 Javascript를 사용하고 있습니까? 이것은 API 또는 프레임 워크를 추가로 사용하지 않고 Javascript를 통해 수행 할 수 있습니다. 타사 API에 의존하기보다는 개인적으로 그 경로를 선택합니다. –

+2

자바 스크립트를 사용하고 있습니다. 그리고 사용자의 컴퓨터 시간이 몇 분 정도 부정확 할 수 있다는 점을 제외하면 작동합니다. 그렇기 때문에 언급 한 대기 시간의 편차 내에서 정확하도록 보장 된 낮은 대기 시간 API 호출을 통해 시간을 얻는 것을 선호합니다. – chadoh

8

이 API는 JSON에서 현재 시간과 여러 형식을 제공합니다 (https://www.mashape.com/parsify/format#endpoint-Time).

{ 
    "time": { 
    "daysInMonth": 31, 
    "millisecond": 283, 
    "second": 42, 
    "minute": 55, 
    "hour": 1, 
    "date": 6, 
    "day": 3, 
    "week": 10, 
    "month": 2, 
    "year": 2013, 
    "zone": "+0000" 
    }, 
    "formatted": { 
    "weekday": "Wednesday", 
    "month": "March", 
    "ago": "a few seconds", 
    "calendar": "Today at 1:55 AM", 
    "generic": "2013-03-06T01:55:42+00:00", 
    "time": "1:55 AM", 
    "short": "03/06/2013", 
    "slim": "3/6/2013", 
    "hand": "Mar 6 2013", 
    "handTime": "Mar 6 2013 1:55 AM", 
    "longhand": "March 6 2013", 
    "longhandTime": "March 6 2013 1:55 AM", 
    "full": "Wednesday, March 6 2013 1:55 AM", 
    "fullSlim": "Wed, Mar 6 2013 1:55 AM" 
    }, 
    "array": [ 
    2013, 
    2, 
    6, 
    1, 
    55, 
    42, 
    283 
    ], 
    "offset": 1362534942283, 
    "unix": 1362534942, 
    "utc": "2013-03-06T01:55:42.283Z", 
    "valid": true, 
    "integer": false, 
    "zone": 0 
} 
+1

니스! 나는 좀 더 간단한 것을 찾고 있었다. (나는 단순한 문자열을 원했다.) 그러나 이것은 좋은 것이다. – chadoh

+2

링크가 변경되었습니다. 이제 : https://market.mashape.com/parsify/format#time – waste

관련 문제