2009-04-20 34 views

Trả lời

10

Javascript:

var today = new Date(); 

alert(today.getTimezoneOffset()); 

này sẽ cung cấp cho các offset (GMT-X), nhưng không phải là tên múi giờ thực tế. Hãy nhớ rằng bù giờ GMT có thể tương ứng với nhiều múi giờ và cũng phải tính đến tiết kiệm ánh sáng ban ngày. Tuy nhiên, đây có lẽ là nơi dễ nhất để bắt đầu, ngắn cho phép người dùng chọn múi giờ của họ từ menu thả xuống.

+1

Điều duy nhất tôi muốn lưu ý là 'getTimezoneOffset()' dường như trả về khoảng thời gian GMT là chênh lệch múi giờ của người dùng được bù trừ, và không phải là cách khác xung quanh. tức là khi ở Giờ Chuẩn Đông Bắc Mỹ, '(Ngày mới()). GetTimezoneOffset()/60' trả về' 5', khi EST thực sự bằng GMT-05: 00, không phải GMT + 05: 00. – gabriel

1

Bạn có thể sử dụng JavaScript đến hơn hoặc ít đáng tin cậy xác định múi giờ bù đắp. HTTP, với kiến ​​thức của tôi, không cung cấp bất kỳ phương tiện nào để xác định múi giờ của khách hàng trên máy chủ.

1

Sử dụng Javascript:

<input type="hidden" id="visitorTZ" name="visitorTZ" /> 
<script type="text/javascript"> 
    d = new Date(); 
    document.getElementById('visitorTZ').value = d.getTimezoneOffset()/60; 
</script> 
2

Bạn có thể thử để phát hiện một quốc gia sử dụng bằng cách kết hợp địa chỉ IP của họ cho một loạt các danh sách. Có nhiều cách khác nhau để đạt được điều này, nhưng tốt nhất là sử dụng this API.

Một ví dụ về việc sử dụng sẽ là: http://nl.ae/iptocapi.php?type=1&ip=00.00.00.00. Điều này sẽ trả về mã quốc gia của địa chỉ IP đó. Sau đó, nó khá dễ dàng để phù hợp với mã quốc gia với múi giờ.

Khi bạn đã tìm thấy múi giờ theo cách này, bạn có thể sử dụng múi giờ làm giá trị mặc định trong hộp thả xuống.

+4

Điều này sẽ không hoạt động. * Nhiều quốc gia * bao gồm nhiều múi giờ. – Turtle

+0

Nhìn lại nó thực sự không phải là một ý tưởng tốt. – Sam152

Các vấn đề liên quan