|
2 years ago | |
---|---|---|
.github/workflows | 2 years ago | |
assets | 3 years ago | |
data | 3 years ago | |
scripts | 3 years ago | |
templates | 3 years ago | |
third-party | 3 years ago | |
.dockerignore | 3 years ago | |
.gitignore | 3 years ago | |
Dockerfile | 2 years ago | |
LICENSE | 3 years ago | |
Makefile | 3 years ago | |
NOTES.md | 3 years ago | |
README.md | 3 years ago | |
app.go | 3 years ago | |
apperror.go | 3 years ago | |
go.mod | 3 years ago | |
go.sum | 3 years ago | |
logger_development.go | 2 years ago | |
logger_production.go | 2 years ago | |
main.go | 3 years ago | |
mime.go | 3 years ago | |
mime_test.go | 3 years ago | |
search.go | 3 years ago | |
search_test.go | 3 years ago | |
template.go | 3 years ago | |
template_test.go | 3 years ago | |
templatehelpers.go | 3 years ago | |
url.go | 3 years ago | |
url_test.go | 3 years ago | |
zone.go | 3 years ago | |
zone_test.go | 3 years ago | |
zonecity.go | 3 years ago | |
zonecity_test.go | 3 years ago | |
zoneoffset.go | 3 years ago | |
zoneoffset_test.go | 3 years ago |
README.md
datetime.link
Readable links to a point in time
Credits
- GeoNames and its contributors
Reporting Problems
File an issue on GitHub.
Rationale
Sometimes, you want to refer to a point in time, and also want to provide a timezone converter for them. datetime.link provides links to points in time and presents them in a set of selected timezones and/or local time.
Compatibility
To ensure compatibility with non-JavaScript clients, the server responds with a pure HTML page without local time. JavaScript provides the rendering of local time and local time format using the native Intl and Date APIs, eventually the Temporal API. JavaScript also provides the visual editing interface for the date, time and list of timezones to show in.
Timezone Specifiers
GeoNames data is used to generate
data/cities.json
, a huge 5MB JSON
blob containing cities with a population greater than 15000. In the event this
is not enough, more cities can be included by using the alternate
cities5000.txt
file.
The timezone specifiers are generated by the code in scripts/data.go
, which
assemble an identifier replacing non-alphanumeric and quote characters with
underscores. Dashes then are used to join the city name, administrative division
level 1 names and country names.
Alternatively, a fixed timezone can be specified as an offset like +08:00
.
This caters for scenarios where the local DST and other local time differences
should not be accounted for. These are guarenteed to be stable and accurate.
Timezone Data
Go relies on local tzdata, and thus
datetime.link
relies on it too.
Upcoming Improvements
See Issues.