Hướng dẫn php gmt to local time - php gmt sang giờ địa phương

Môi trường máy chủ

Redhat Enterprise Linux Php 5.3.5
PHP 5.3.5

Vấn đề

Giả sử tôi có một ngày và giờ UTC như 2011-04-27 02:45 và tôi muốn chuyển đổi nó sang thời gian địa phương của tôi, đó là Mỹ/New_York.

Ba câu hỏi:

1.) Mã của tôi dưới đây có thể giải quyết vấn đề, bạn có đồng ý không?


2.) Nhưng, giá trị của $ offset có tự động điều chỉnh cho thời gian tiết kiệm ánh sáng ban ngày (DST) không? 3.) Nếu không, làm thế nào tôi nên điều chỉnh mã của mình để tự động điều chỉnh cho DST?
3.) If not, how should I tweak my code to automatically adjust for DST ?

Cảm ơn bạn :-)

Hỏi ngày 27 tháng 4 năm 2011 lúc 15:23Apr 27, 2011 at 15:23

Hướng dẫn php gmt to local time - php gmt sang giờ địa phương

1

Điều này sẽ làm những gì bạn muốn sử dụng các lớp DateTime và DateTimezone gốc của PHPS:

$utc_date = DateTime::createFromFormat(
                'Y-m-d G:i', 
                '2011-04-27 02:45', 
                new DateTimeZone('UTC')
);

$nyc_date = $utc_date;
$nyc_date->setTimeZone(new DateTimeZone('America/New_York'));

echo $nyc_date->format('Y-m-d g:i A'); // output: 2011-04-26 10:45 PM

Xem trang DateTime :: createdFromFormat Man để biết thêm thông tin.

Sau một số thử nghiệm giữa các múi giờ làm và hiện không có DST, tôi đã phát hiện ra rằng điều này sẽ tính đến DST. Chuyển đổi tương tự bằng phương pháp của tôi ở trên hiển thị cùng thời gian kết quả.

Đã trả lời ngày 27 tháng 4 năm 2011 lúc 15:48Apr 27, 2011 at 15:48

TreffynnontreffynnonTreffynnon

21.1k6 Huy hiệu vàng62 Huy hiệu bạc97 Huy hiệu Đồng6 gold badges62 silver badges97 bronze badges

4

Tôi biết đây là một bài viết cũ, nhưng có một dòng khác bạn cần thêm để có được thời gian chính xác.

Trước khi chuyển đổi sang giờ địa phương, bạn cần đặt múi giờ mặc định thành UTC như thế này (nếu đó là múi giờ của thời gian bạn đang cung cấp):

function GmtTimeToLocalTime($time) {
    date_default_timezone_set('UTC');
    $new_date = new DateTime($time);
    $new_date->setTimeZone(new DateTimeZone('America/New_York'));
    return $new_date->format("Y-m-d h:i:s");
}

Đã trả lời ngày 28 tháng 7 năm 2014 lúc 16:20Jul 28, 2014 at 16:20

Hướng dẫn php gmt to local time - php gmt sang giờ địa phương

LComparelComparelcompare

89712 Huy hiệu bạc10 Huy hiệu đồng12 silver badges10 bronze badges

date_default_timezone_set('America/New_York');  // Set timezone.
$utc_ts = strtotime("2011-04-27 02:45");  // UTC Unix timestamp.

Ngay sau khi thực hiện điều này, $ UTC_TS chứa thời gian địa phương. PHP xử lý chính DST.

=H=

Đã trả lời ngày 27 tháng 4 năm 2011 lúc 15:43Apr 27, 2011 at 15:43

2

Tôi sẽ cải thiện câu trả lời của Hasin Hayder

date_default_timezone_set('America/New_York');  // Set timezone.
$utc_ts = strtotime("2011-04-27 02:45 UTC");  // UTC Unix timestamp.
echo date('Y-m-d H:i:s a T', $utc_ts);

Nó nên đầu ra

2011-04-26 10:45:00 pm EDT

Sự khác biệt là thêm múi giờ nguồn. Strtotime () chấp nhận thời gian quá bạn biết! :P

Đã trả lời ngày 8 tháng 7 năm 2016 lúc 3:34Jul 8, 2016 at 3:34

format('P');//Asia/Kolkata ... GET TimeZone From PHP ini Setting
    $tm_datetime = '08/08/2021 12:00 AM';
    $tm_tz_from = $timeZone;
    $tm_tz_to = 'UTC';
    $tm_format = 'Ymd\THis\Z';
    $dt = new DateTime($tm_datetime, new DateTimeZone($tm_tz_from));
    $dt->setTimeZone(new DateTimeZone($tm_tz_to));
    $utc_time_from =$dt->format("H:i:s");
    echo "UTC TIME".$utc_time_from;

?>

Đã trả lời ngày 9 tháng 8 năm 2021 lúc 10:58Aug 9, 2021 at 10:58

Hướng dẫn php gmt to local time - php gmt sang giờ địa phương

AmolamolAmol

Phù hiệu đồng 4144 bronze badges

1

Làm thế nào tôi có thể nhận được GMT trong PHP?

Gmdate () là một hàm sẵn có trong PHP được sử dụng để định dạng ngày và thời gian GMT/UTC và trả về các chuỗi ngày được định dạng.Nó tương tự như hàm date () nhưng nó trả về thời gian trong thời gian trung bình của Greenwich (GMT).gmdate() is an inbuilt function in PHP which is used to format a GMT/UTC date and time and return the formatted date strings. It is similar to the date() function but it returns the time in Greenwich Mean Time (GMT).

Làm cách nào để chuyển đổi múi giờ sang một trong một trong PHP?

Thật sự đơn giản để chuyển đổi một datetime từ múi giờ này sang múi giờ khác trong PHP.Chỉ cần tạo một đối tượng DateTime bằng cách sử dụng ngày và thời gian để được chuyển đổi làm tham số đầu tiên và múi giờ ban đầu là tham số thứ hai.Sau đó, thay đổi múi giờ thành quy mô mong muốn bằng phương thức setTimezone.Đó là tất cả!

UTC có thời gian nào cho PHP?

Thời gian mặc định cho PHP là UTC bất kể thời gian của máy chủ của bạn.Đây là múi giờ được sử dụng bởi tất cả các hàm ngày/giờ PHP trong tập lệnh của bạn.Xem danh sách thời gian được hỗ trợ của PHP để tìm tên của tất cả các múi giờ có thể bạn có thể sử dụng cho ngày.. This is the timezone used by all PHP date/time functions in your scripts. See PHP's list of supported timezones to find the names of all possible timezones you can use for the date.

Mấy giờ UTC 24 giờ?

Thời gian hiện tại của UTC là 18:39:38 Ngày hiện tại của UTC là ngày 5 tháng 11 năm 2022.18:39:38 UTC current date is 5th Saturday November 2022.