09/10/2018, 23:57

Cho em hỏi có cách nào lấy giờ GMT không ?

Em đang viết 1 cái forum nhưng server đặt bên mỹ. Giờ em muốn lấy giờ GMT làm gốc. Rồi sau đó ở các nơi khác nhau sẽ hiển thị giờ khác nhau.
Ah, cho em hỏi thêm có cách nào nhận dạng Ip của một Client khi request là của nước nào không ?
greenbeetle viết 02:10 ngày 10/10/2018
PHP Code:
// SELECT TIME ZONE
$sign "+"// Whichever direction from GMT to your timezone.
$h "7"// Hour for time zone goes here e.g. +8 or -4, just remove the + or -
$dst "true"// Just insert "true" if your location uses daylight savings time or "false" if it does not

// DETECT AND ADJUST FOR DAYLIGHT SAVINGS TIME
if ($dst) {
    
$daylight_saving date('I');
    if (
$daylight_saving){
        if (
$sign == "-"){ $h=$h-1;  }
        else { 
$h=$h+1; }
    }
}

// FIND DIFFERENCE FROM GMT
$hm $h 60;
$ms $hm 60;

// SET CURRENT TIME
if ($sign == "-"){ $timestamp time()-($ms); }
else { 
$timestamp time()+($ms); }

// SAMPLE OUTPUT
$gmdate gmdate("m/d/Y g:i:s A"$timestamp);

echo 
"Your current time now is :  $gmdate . "
Bạn thử coi, code này mình lấy trên php.net
zoejoe viết 02:02 ngày 10/10/2018
Cảm ơn anh, nhưng cho em hỏi cái này là sao ?
PHP Code:
 $dst "true"// Just insert "true" if your location uses daylight savings time or "false" if it does not 
Nó có ý nghĩa gì ?
zoejoe viết 02:00 ngày 10/10/2018
Hì hì, bây giờ em đã hiểu mấy phần trên rồi. Còn nhớ hồi học cấp 2 có nghe nói tới cái này mà lúc đó thấu ngu ngu !
PHP Code:
 $dst "true"// Just insert "true" if your location uses daylight savings time or "false" if it does not 
Cái này chắc nói tới việc chuyển ngày ở chỗ Kinh tuyến 180 độ đây mà.

À, qua bài trả lời của anh greenbeetle em mới phát hiện ra rằng timestamp là lấy từ giờ GMT !
Thanks anh greenbeetle nha !
Thanh duc viết 02:06 ngày 10/10/2018
time() chỉ lấy giờ hiện tại của server, còn server đạng chạy trên múi giờ nào chúa mới biết vậy thì rõ ràng ko xác định được giờ GMT rồi
Vô Thin viết 02:12 ngày 10/10/2018
Nếu server được cài đặt đúng giờ ở nơi đó thì không sao? Nhưng giả sử họ chỉnh thế nào ấy bị sai múi giờ thì làm thế nào mà phát hiện ra được nhỉ? Lúc đó có lẽ là chỉ có mở bản đồ / website ra xem và cộng trừ thời gian chênh lệnh. Như vậy, cách lý tưởng có là đọc file từ một server cung cấp giờ miễn phí nào đó và trích ra chuỗi giờ mỗi khi khách ghé thăm trang. Không rõ điều này có làm cho script chạy ì ì không nhỉ?
zoejoe viết 02:13 ngày 10/10/2018
Được gửi bởi Thanh duc
time() chỉ lấy giờ hiện tại của server, còn server đạng chạy trên múi giờ nào chúa mới biết vậy thì rõ ràng ko xác định được giờ GMT rồi
Không đâu. time() là lấy timestamp được xác định đúng từ 00:00:00 1/1/1970 tại giờ GMT ==> vậy là có thể show giờ theo đúng múi giờ hiện hành theo từng khu vực khác nhau rồi !
Test : http://zhome.info/test3.php
Thanh duc viết 02:05 ngày 10/10/2018
hình như bạn vẫn chưa hiểu, time nó lấy giờ trên server thôi mà server đâu có phải cái nào cũng chạy theo h GMT hoặc time tren server ko chinh xac.
con việc chuyển đổi gữa các múi h sau khi đã biết h GMT thì nó là bài toán cấp 1
Vô Thin viết 01:58 ngày 10/10/2018
Được gửi bởi Thanh duc
hình như bạn vẫn chưa hiểu, time nó lấy giờ trên server thôi mà server đâu có phải cái nào cũng chạy theo h GMT hoặc time tren server ko chinh xac.
con việc chuyển đổi gữa các múi h sau khi đã biết h GMT thì nó là bài toán cấp 1
Đúng rồi đó, ngày trước một số nhà cung cấp host ở Việt Nam không để ý, cấu hình / cài đặt thế quái nào mà múi giờ mãi tận Ixraen, nhưng rất may là nó toàn ở Share host ít có cần đến giờ mấy nên ảnh hưởng bé, chớ nó mà làm trên site ngân hàng / thương mại điện tử thì hỏng bét cả.

Cách hay nhất là lấy giờ ở một dịch vụ độc lập với Server mình host file là an toàn nhất. Khi lấy được giờ đó rồi thì tha hồ mà tính toán này nọ, dù cái host của ta ở đâu thì cũng đêk sợ.
zoejoe viết 01:57 ngày 10/10/2018
Như vậy thì có cách nào lấy giờ ở một dich vụ độc lập không ?
Mình vẫn còn mờ mịt về cái này lắm. Ai có code thì chỉ với !
Bài liên quan
0