Hướng dẫn php convert gmt to timezone - php chuyển đổi gmt sang múi giờ

Làm thế nào tôi có thể chuyển đổi một ngày như thế này: 2012-07-16 01:00:00 +00 [đó là trong thời gian UTC +00:00] thành thời gian UTC +04:00? Đảm bảo rằng tiết kiệm ánh sáng ban ngày sẽ được xử lý chính xác?

Hỏi ngày 9 tháng 8 năm 2012 lúc 12:44Aug 9, 2012 at 12:44

Jo Smojo SmoJo Smo

6.5439 Huy hiệu vàng43 Huy hiệu bạc66 Huy hiệu Đồng9 gold badges43 silver badges66 bronze badges

2

Sử dụng DateTimeDateTimeZone.

$date = new DateTime['2012-07-16 01:00:00 +00'];
$date->setTimezone[new DateTimeZone['Europe/Moscow']]; // +04

echo $date->format['Y-m-d H:i:s']; // 2012-07-15 05:00:00 

Đã trả lời ngày 9 tháng 8 năm 2012 lúc 12:54Aug 9, 2012 at 12:54

FlorentflorentFlorent

12.3k10 Huy hiệu vàng46 Huy hiệu bạc58 Huy hiệu Đồng10 gold badges46 silver badges58 bronze badges

1

Để giúp giải pháp, bạn cần có phần cuối cùng của chuỗi [phần bù] và tìm kiếm nó so với một tra cứu đơn giản. Bạn có thể sử dụng Regex hoặc

//So For 'Asia/Kolkata' you need to use 

$timeZone = new DateTimeZone['+0530'];

// Example 

$utc = new DateTime["1960-08-08T20:40:00Z"];
echo $utc->format['Y-m-d H:i:s T']."
"; $tz =new DateTimeZone['+0530']; $utc->setTimezone[$tz]; echo $utc->format['Y-m-d H:i:s T'];
0 [có thể] để có được phần khó khăn nhất. Sau đó, khi bạn có giá trị + hoặc -, hãy sử dụng tối đa 24 lần tra cứu so với thời gian có thể mà bạn có thể sử dụng với thời gian có thể của PHP - nếu phần bù là giống nhau, ai quan tâm đến quốc gia/vị trí thực tế là gì?

Việc sử dụng DATE_DEFAULT_TIMEZONE_SET để áp dụng đúng.

Đã trả lời ngày 9 tháng 8 năm 2012 lúc 12:55Aug 9, 2012 at 12:55

FluffehfluffehFluffeh

32,8K16 Huy hiệu vàng66 Huy hiệu bạc80 Huy hiệu đồng16 gold badges66 silver badges80 bronze badges

Trình xây dựng DateTimeZone có thể chấp nhận rõ ràng một phần bù UTC, mà tôi hiểu bạn có.

//So For 'Asia/Kolkata' you need to use 

$timeZone = new DateTimeZone['+0530'];

// Example 

$utc = new DateTime["1960-08-08T20:40:00Z"];
echo $utc->format['Y-m-d H:i:s T']."
"; $tz =new DateTimeZone['+0530']; $utc->setTimezone[$tz]; echo $utc->format['Y-m-d H:i:s T'];

Đầu ra: 1960-08-08 20:40:00 Z 1960-08-09 02:10:00 GMT+0530

Tôi đoán đây là cách dễ nhất và đơn giản nhất để chuyển đổi thời gian sang bất kỳ phần bù nào đã cho

Documentation:

//php.net/manual/en/datetimezone.construct.php

Lưu ý: Theo liên kết tài liệu đó, việc sử dụng hàm tạo mới này đã có sẵn kể từ Php phiên bản 5.5.10.

Đã trả lời ngày 12 tháng 9 năm 2021 lúc 16:38Sep 12, 2021 at 16:38

Bạn cũng có thể sử dụng thời gian GMT và chuyển đổi nó theo yêu cầu của bạn sau đó


GMT đề cập đến thời gian trung bình của Greenwich là phổ biến trên toàn thế giới.

McDowell

106K29 Huy hiệu vàng199 Huy hiệu bạc262 Huy hiệu Đồng29 gold badges199 silver badges262 bronze badges

Đã trả lời ngày 22 tháng 8 năm 2014 lúc 9:41Aug 22, 2014 at 9:41

0

Nó cung cấp các ví dụ mã để chuyển đổi ngày và thời gian sang một múi giờ khác trong PHP.

Hướng dẫn này cung cấp các ví dụ về mã để chuyển đổi giá trị ngày và thời gian từ một múi giờ sang múi giờ khác bằng các lớp DateTime và Datetimezone. Chúng ta luôn có thể chuyển đổi giá trị ngày và thời gian từ múi giờ hoạt động sang một múi giờ khác.

Các ví dụ dưới mức được đề cập cho thấy việc chuyển đổi ngày và thời gian đã cho từ UTC Timezone sang Los Angeles Timezone. Nó tiếp tục chuyển đổi ngày và thời gian từ Timezone Los Angeles thành London Timezone.UTC timezone to the Los Angeles timezone. It further converts the date and time from the Los Angeles timezone to the London timezone.

// Get Timezone - UTC
$utcTimezone = new DateTimeZone[ 'UTC' ];

// Set time
$time = new DateTime[ '2020-06-03 10:45:15', $utcTimezone ];

echo $time->format[ 'Y-m-d H:i:s' ]; // 2020-06-03 10:45:15

// Get Timezone - Los Angeles
$laTimezone = new DateTimeZone[ 'America/Los_Angeles' ];

$time->setTimeZone[ $laTimezone ];

// Convert UTC to Los Angeles
echo $time->format[ 'Y-m-d H:i:s' ]; // 2020-06-03 03:45:15

// Get Timezone - London
$loTimezone = new DateTimeZone[ 'Europe/London' ];

$time->setTimeZone[ $loTimezone ];

// Convert Los Angeles to London
echo $time->format[ 'Y-m-d H:i:s' ]; // 2020-06-03 11:45:15

Chúng ta có thể thực hiện nhiều chuyển đổi múi giờ như được hiển thị ở trên để hiển thị nhiều đồng hồ, giữ UTC làm múi giờ tiêu chuẩn.

Chúng ta cũng có thể sử dụng hàm DATE_DEFAULT_TIMEZONE_SET để đặt múi giờ mặc định và sử dụng múi giờ khác để chuyển đổi ngày và thời gian từ múi giờ mặc định sang múi giờ đã cho như hiển thị bên dưới.date_default_timezone_set to set the default timezone and use a different timezone to convert the date and time from the default timezone to the given timezone as shown below.

Bài Viết Liên Quan

Chủ Đề