API Resto gratuito per ottenere l’ora corrente come stringa (fuso orario non pertinente)

Potrei installarlo da solo, ma la funzionalità è talmente semplice che sembra che qualcun altro probabilmente lo abbia già fatto meglio e più velocemente di me con la mia app Rails.

Mi serve l’ora corrente come stringa. Mi piacerebbe tornare in meno di un secondo, dovunque il mio visitatore si trovasse nel mondo. (Sto facendo un conto alla rovescia e ha bisogno di essere più preciso del tempo di un eventuale utente spento.) Può essere orario GMT. Non importa, purché indichi il fuso orario (ad esempio “2012-11-05 16:16:50 EST”).

(Potrei costruirlo da solo, naturalmente. È un’API semplice, ma i miei server si trovano sulla costa orientale degli Stati Uniti e sto lavorando all’interno di un intero stack Rails. Filtrando qualcuno attraverso un intero grande stack di software come Rails, solo per restituire una stringa sembra inelegante, e sono preoccupato per la latenza per i visitatori lontani dalla costa orientale degli Stati Uniti.)

TimezoneDb fornisce un’API gratuita: http://timezonedb.com/api

GenoNames ha anche un’API RESTful disponibile per ottenere l’ora corrente per un determinato luogo: http://www.geonames.org/export/ws-overview.html .

Puoi utilizzare Greenwich, Regno Unito se desideri GMT.

Questa API ti offre l’ora corrente e diversi formati in JSON – https://www.mashape.com/parsify/format#endpoint-Time . Ecco una risposta di esempio:

 { "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 } 

Se stai usando Rails, puoi semplicemente creare un file vuoto nella cartella pubblica e usare ajax per ottenerlo. Quindi analizzare le intestazioni per l’intestazione Data. I file nella cartella Public ignorano lo stack Rails e hanno quindi una latenza inferiore.