Cách dễ nhất để có được bù trừ UTC trong PHP, liên quan đến múi giờ hiện tại (hệ thống) là gì?Bù trừ UTC trong PHP
Trả lời
date('Z');
lợi nhuận UTC bù đắp trong vài giây.
$this_tz_str = date_default_timezone_get();
$this_tz = new DateTimeZone($this_tz_str);
$now = new DateTime("now", $this_tz);
$offset = $this_tz->getOffset($now);
chưa được kiểm tra, nhưng nên làm việc
hữu ích nếu bạn đang sử dụng lớp DateTime trong PHP 5. Nhưng tôi không. –
date("Z")
sẽ trả về giá trị UTC tương ứng với múi giờ của máy chủ chứ không phải múi giờ máy của người dùng. Để có múi giờ máy của người dùng, bạn có thể sử dụng hàm javascript getTimezoneOffset()
trả về chênh lệch thời gian giữa thời gian UTC và giờ địa phương, tính bằng phút.
<script type="text/javascript">
d = new Date();
window.location.href = "page.php?offset=" + d.getTimezoneOffset();
</script>
Và trong page.php
giữ mã php của bạn, bạn có thể làm bất cứ điều gì bạn muốn với giá trị bù đó. Hoặc thay vì chuyển hướng đến một trang khác, bạn có thể gửi giá trị bù đắp cho tập lệnh php của mình thông qua Ajax, theo nhu cầu của bạn.
OP được yêu cầu rõ ràng * "liên quan đến múi giờ hiện tại (hệ thống)?" * – Madbreaks
OP đã hỏi giải pháp PHP, chứ không phải JS –
Tôi đã làm một phiên bản được sửa đổi đôi chút về những gì Oscar đã làm.
date_default_timezone_set('America/New_York');
$utc_offset = date('Z')/3600;
Điều này đã cho tôi khoản chênh lệch từ múi giờ, EST, sang UTC, tính theo giờ.
Giá trị $ utc_offset là -4.
ngày lặp lại ('P'); // sẽ ra một cái gì đó 02: 00 hoặc -04: 00
Đây là cùng Javascript date.getTimezoneOffset()
chức năng:
<?php
echo round(date('Z')/-60,2);
?>
['date (' Z ') '] (http://php.net/manual/en/function.date.php) là *« Thời gian bù đắp trong vài giây »» Dấu trừ nên ở lại ... Chia cho '60'. Không phải bởi '-60' Sau đó, điều này sẽ xuất ra bù trừ múi giờ của máy chủ. OP muốn (trong năm 2008) để so sánh bù đắp của người dùng địa phương với giá trị này bạn nói về. –
@LouysPatriceBessette 'getTimezoneOffset()' chức năng trong javascript cho giống như giá trị này chính xác (-180). –
Điều đó đúng với [JavaScript getTimezoneOffset()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset) ... Và chỉ trong vài phút thay vì giây. Ngày PHP không làm đảo ngược giá trị tuyệt đối này. –
- 1. Cách lấy bù trừ UTC trong vài giây trong android
- 2. Loại bù trừ bất hợp pháp PHP
- 3. Làm cách nào để phân tích cú pháp múi giờ với bù trừ UTC bằng Python?
- 4. chuyển đổi thời gian utc và bù đắp cho DateTime
- 5. Cách tốt nhất để lấy chuỗi được định dạng để biểu diễn bù trừ UTC là gì?
- 6. Tự xóa bù trừ thiết lập Javascript?
- 7. Chống răng cưa và bù trừ gamma
- 8. Trong tính toán bù trừ MySQL cho một múi giờ
- 9. phiên thanh toán bù trừ trong MongoDB, expressjs, nodejs
- 10. django 1.4 - không thể so sánh các khoảng thời gian bù trừ-ngây thơ và bù trừ nhận thức
- 11. php - Làm cách nào để sửa lỗi lỗi bù trừ bất hợp pháp này
- 12. PHP: Tại sao timezone_name_from_abbr không hoạt động với bù trừ GMT là 8?
- 13. ngày Trừ trong PHP
- 14. Làm thế nào để lấy bù đắp múi giờ từ GMT + 0 trong php?
- 15. Hướng dẫn lắp ráp, thanh toán bù trừ cờ & TF
- 16. đối tượng thanh toán bù trừ từ localStorage
- 17. UITabBarItem finishedImageSelected được đặt bù trừ thanh tab
- 18. force php strtotime để sử dụng UTC
- 19. không xác định bù đắp PHP lỗi
- 20. nhận thời gian UTC bằng PHP
- 21. Làm thế nào để có được tính theo giờ UTC bù đắp trong javascript (analog của TimeZoneInfo.GetUtcOffset trong C#)
- 22. Chỉ số mảng của tôi là 'bù trừ chuỗi bất hợp pháp' theo cách nào?
- 23. Trừ hai ngày tháng trong php
- 24. Ghi nhật ký/thanh toán bù trừ trong Ruby on Rails
- 25. Trang dài trong FireFox bù trừ khi thanh cuộn xuất hiện
- 26. Nhận bù trừ nhân vật cho các phần tử trong jsoup
- 27. Làm cách nào để sử dụng số trang trong phân trang Codeigniter thay vì bù trừ?
- 28. Kiểu dữ liệu/cấu trúc để lưu trữ bù trừ múi giờ trong MySQL
- 29. Giá trị mảng trừ PHP
- 30. GMT và UTC ngày
Cảm ơn. Thật không may, PHP yêu cầu bạn gọi date_default_timezone_set(). Nếu bạn đặt thành GMT, ngày của bạn từ cơ sở dữ liệu sẽ vẫn ở thời gian địa phương, nhưng ngày ('Z') sẽ trả về 0. Nếu bạn đặt nó vào múi giờ của máy chủ, bạn cũng có thể chỉ cần mã hóa cứng bù đắp của máy chủ từ GMT trong một tệp bao gồm. Thật đáng kinh ngạc là không có cách nào đơn giản để làm điều này. EDIT: Tôi phát hiện ra rằng bạn có thể làm date_default_timezone_set (date_default_timezone_get()). Làm thế nào asinine! – Oscar
ngày ('Z') trả về bù giờ GMT trong giây – Dahomz
Trả về 0. – Adry