Bạn có thể sử dụng geolocator.js để dễ dàng lấy múi giờ và hơn thế nữa ...
Nó sử dụng Google API yêu cầu khóa. Vì vậy, trước tiên, bạn định cấu hình trình định vị địa lý:
geolocator.config({
language: "en",
google: {
version: "3",
key: "YOUR-GOOGLE-API-KEY"
}
});
Nhận TimeZone nếu bạn có tọa độ:
geolocator.getTimeZone(options, function (err, timezone) {
console.log(err || timezone);
});
Ví dụ đầu ra:
{
id: "Europe/Paris",
name: "Central European Standard Time",
abbr: "CEST",
dstOffset: 0,
rawOffset: 3600,
timestamp: 1455733120
}
Xác định vị trí sau đó nhận TimeZone và hơn thế nữa
Nếu bạn không có tọa độ, bạn có thể xác định vị trí người dùng trước.
Ví dụ bên dưới trước tiên sẽ thử API vị trí địa lý HTML5 để lấy tọa độ. Nếu thất bại hoặc bị từ chối, nó sẽ nhận được tọa độ thông qua tra cứu Geo-IP. Cuối cùng, nó sẽ có được múi giờ và hơn thế nữa ...
var options = {
enableHighAccuracy: true,
timeout: 6000,
maximumAge: 0,
desiredAccuracy: 30,
fallbackToIP: true, // if HTML5 fails or rejected
addressLookup: true, // this will get full address information
timezone: true,
map: "my-map" // this will even create a map for you
};
geolocator.locate(options, function (err, location) {
console.log(err || location);
});
Ví dụ đầu ra:
{
coords: {
latitude: 37.4224764,
longitude: -122.0842499,
accuracy: 30,
altitude: null,
altitudeAccuracy: null,
heading: null,
speed: null
},
address: {
commonName: "",
street: "Amphitheatre Pkwy",
route: "Amphitheatre Pkwy",
streetNumber: "1600",
neighborhood: "",
town: "",
city: "Mountain View",
region: "Santa Clara County",
state: "California",
stateCode: "CA",
postalCode: "94043",
country: "United States",
countryCode: "US"
},
formattedAddress: "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA",
type: "ROOFTOP",
placeId: "ChIJ2eUgeAK6j4ARbn5u_wAGqWA",
timezone: {
id: "America/Los_Angeles",
name: "Pacific Standard Time",
abbr: "PST",
dstOffset: 0,
rawOffset: -28800
},
flag: "//cdnjs.cloudflare.com/ajax/libs/flag-icon-css/2.3.1/flags/4x3/us.svg",
map: {
element: HTMLElement,
instance: Object, // google.maps.Map
marker: Object, // google.maps.Marker
infoWindow: Object, // google.maps.InfoWindow
options: Object // map options
},
timestamp: 1456795956380
}