Hướng dẫn how to convert time zone in php? - làm thế nào để chuyển đổi múi giờ trong php?

Không có câu trả lời nào trong số này làm việc cho tôi (tôi đã bỏ qua việc thử mã có kích thước quá cồng kềnh). Tôi cũng nghĩ rằng thật kỳ lạ khi thay đổi múi giờ mặc định chỉ cho một chuyển đổi duy nhất.

Đây là giải pháp của tôi:

function changeTimeZone($dateString, $timeZoneSource = null, $timeZoneTarget = null)
{
  if (empty($timeZoneSource)) {
    $timeZoneSource = date_default_timezone_get();
  }
  if (empty($timeZoneTarget)) {
    $timeZoneTarget = date_default_timezone_get();
  }

  $dt = new DateTime($dateString, new DateTimeZone($timeZoneSource));
  $dt->setTimezone(new DateTimeZone($timeZoneTarget));

  return $dt->format("Y-m-d H:i:s");
}

Vì vậy, để chuyển đổi sang mặc định máy chủ, bạn sẽ chỉ vượt qua một múi giờ:

changeTimeZone("2016-10-24 16:28", "Asia/Tokyo");

Để chuyển đổi từ mặc định máy chủ sang người dùng, bạn sẽ để tham số thứ 2 hoặc trống:

changeTimeZone("2016-10-24 16:28", "", "Asia/Tokyo");

Và để chuyển đổi giữa 2 múi giờ không liên quan đến mặc định, bạn sẽ cung cấp 2 múi giờ:

changeTimeZone("2016-10-24 16:28", "America/New_York", "Asia/Tokyo");

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.

// Globally define the Timezone
define( 'TIMEZONE', 'UTC' );

// Set Timezone
date_default_timezone_set( TIMEZONE );

// Set time
$time = new DateTime( '2020-06-03 10:45:15' );

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

Đây là cách dễ nhất để chuyển đổi thời gian từ đồng hồ này sang đồng hồ khác bằng các lớp DateTime và Datetimezone.

Nó rất đơn giản để chuyển đổi DateTime từ múi giờ này sang múi giờ khác trong PHP. Chỉ cần tạo đối tượng A & nbsp; ________ 9 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àm tham số thứ hai. Sau đó thay đổi múi giờ thành quy mô mong muốn bằng phương pháp

changeTimeZone("2016-10-24 16:28", "Asia/Tokyo");
1. Đó là tất cả!

$date = new DateTime('2018-04-11 12:00:00', new DateTimeZone('Europe/London'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('Europe/Bucharest'));
echo $date->format('Y-m-d H:i:sP') . "\n";

Trên đây sẽ xuất hiện:

2018-04-11 12:00:00+01:00
2018-04-11 14:00:00+03:00

date_timezone_set

(Php 5> = 5.2.0, Php 7, Php 8)

DateTime :: SetTimezone - Date_Timezone_set - Đặt múi giờ cho đối tượng DateTime -- date_timezone_setSets the time zone for the DateTime object

Thông số

changeTimeZone("2016-10-24 16:28", "Asia/Tokyo");
2

Chỉ kiểu thủ tục: một đối tượng DateTime được trả về bởi date_create (). Hàm sửa đổi đối tượng này.DateTime object returned by date_create(). The function modifies this object.

changeTimeZone("2016-10-24 16:28", "Asia/Tokyo");
3

Một đối tượng DateTimezone đại diện cho múi giờ mong muốn.DateTimeZone object representing the desired time zone.

Trả về giá trị

Trả về đối tượng DateTime cho chuỗi phương thức. Các điểm trong thời gian không thay đổi khi gọi phương thức này.DateTime object for method chaining. The underlaying point-in-time is not changed when calling this method.

Ví dụ

Ví dụ #1 DateTime :: SetTimeZone () Ví dụDateTime::setTimeZone() example

Phong cách hướng đối tượng

changeTimeZone("2016-10-24 16:28", "Asia/Tokyo");
4

Phong cách thủ tục

changeTimeZone("2016-10-24 16:28", "Asia/Tokyo");
5

Các ví dụ trên sẽ xuất ra:

2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45

Xem thêm

  • Datetimeimmutable :: setTimeZone () - Đặt múi giờ
  • DateTime :: GetTimeZone () - Múi thời gian trả về liên quan đến DateTime đã cho
  • Datetimezone :: __ construct () - Tạo đối tượng Datetimezone mới

Không có người dùng đóng góp ghi chú cho trang này.

Làm thế nào chúng ta có thể chuyển đổi các múi giờ bằng PHP?

PHP $ time = '6: 02'; $ dt = new DateTime ($ Time, Datetimezone mới ('America/new_york')); // echo $ dt-> định dạng ('y-m-d h: i: s'). PHP_EOL; $ dt-> setTimezone (datetimezone mới ('Châu Á/Kolkata')); echo $ dt-> định dạng ('h: i').

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.

Làm thế nào tôi có thể có được múi giờ và mã quốc gia trong PHP?

PHP có một chức năng cho nó bằng GEOIP.Hàm GeoIP_TIME_ZONE_BY_COUNTRY_AND_REGION () sẽ trả về múi giờ tương ứng với combo mã quốc gia và vùng.geoip_time_zone_by_country_and_region() function will return the time zone corresponding to a country and region code combo.

Làm thế nào để bạn thay đổi từ múi giờ này sang múi giờ khác?

Để chuyển đổi một phiên bản WascedDateTetime từ thời gian này sang thời gian khác, hãy làm theo hai bước: Tạo WascedDateTime trong Timezone thứ nhất. Bạn có thể đã có nó trong ứng dụng của mình. Đáng chú ý lần đầu tiên trong thời gian sử dụng phương thức withzonesameInstant ().Create ZonedDateTime in 1st timezone. You may already have it in your application. Convert the first ZonedDateTime in second timezone using withZoneSameInstant() method.