2013-03-01 31 views
7

Tôi tự hỏi liệu có cách nào để có được múi giờ của người dùng trong php và sau đó hiển thị thời gian dựa trên múi giờ của người xem hay không. Tôi biết nó có thể được thực hiện trong javascript nhưng tôi muốn có một giải pháp trong php. Tôi đã tìm kiếm rất nhiều nhưng không thể tìm được cách để thực hiện công việc này.PHP: Hiển thị thời gian dựa trên múi giờ của người dùng

Vì vậy, về cơ bản giả sử thời gian là 8:30 GMT + 0530. Của nó trong múi giờ Ấn Độ tôi muốn nếu một người dùng xem này ở Ne York thì nó sẽ là 21:30.

+0

[Bạn đã thử gì?] (Http://www.whathaveyoutried.com/) Xem [hỏi lời khuyên] (http://stackoverflow.com/questions/ask-advice). –

+0

Tôi đã thực hiện nó bằng cách sử dụng js nhưng muốn biết nếu nó có thể đạt được trong php. –

Trả lời

5

Nếu bạn thêm người dùng Múi giờ khi đăng ký hoặc bạn biết người dùng Múi giờ nào đó, thì bạn có thể thử điều này .. .

$users = array(
    array(
     'username' => 'foo', 
     'timezone' => 'America/Los_Angeles' 
    ), 
    array(
     'username' => 'bar', 
     'timezone' => 'America/New_York' 
    ) 
); 

foreach ($users as $user) { 
    date_default_timezone_set($user['timezone']); 
    echo $user['username'] . ' date and time is ' . date('Y-m-d H:i:s') . '<br />'; 
} 

Output

foo time is 2013-02-28 18:13:49 
bar time is 2013-02-28 21:13:49 

Bạn cũng có thể sử dụng múi giờ trong JavaScrpt Getting the client's timezone in JavaScript. Thực hiện một yêu cầu Ajax và Lưu trong phiên PHP hoặc cơ sở dữ liệu.

+0

Mã của bạn "lấy múi giờ của người dùng" ở đâu? –

+2

Điều này rất tĩnh và vô dụng, bạn phải nhận được thông tin của người dùng và đặt múi giờ theo họ – Sam

+4

Nó tĩnh cho mục đích trình diễn. Tất nhiên bạn không viết người dùng của bạn vào một mảng. –

3

Bạn phải nhận được thông tin người dùng và thiết lập múi giờ mặc định

Look date_default_timezone_set()

ip geolocation api

+0

Điều gì xảy ra nếu API của họ không có IP của người dùng trong db của họ? JS sẽ ** luôn ** trả về múi giờ của người dùng. PHP không thể. Ngoài ra, làm như thế này là không đáng tin cậy, do VPN giống như iPredator vv –

+0

Trong trường hợp đó, bạn có thể thử với múi giờ chung, như $ _SERVER ['HTTP_ACCEPT_LANGUAGE'] – Sam

+0

Tại sao sử dụng múi giờ chung khi bạn có thể sử dụng thực tế của người dùng múi giờ, do JS cung cấp? –

1

Bạn có thể nhận được những người sử dụng múi giờ bằng cách vượt qua IP của họ với nhiều cơ sở dữ liệu định vị sẵn, chẳng hạn như IPInfoDB

http://ipinfodb.com/ip_location_api.php

bạn sẽ cần đăng ký một khóa API miễn phí, nhưng chúng cũng cung cấp cho bạn một ví dụ làm việc (ở trên)

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