Làm cách nào để chuyển đổi thời gian UTC sang giờ Ấn Độ trong PHP?

PHP đi kèm với một danh mục phong phú các hàm ngày và giờ, tất cả được thiết kế để cho phép bạn dễ dàng truy xuất thông tin thời gian, sắp xếp nó thành định dạng bạn yêu cầu và sử dụng nó trong tính toán hoặc hiển thị cho người dùng. Tuy nhiên, một giải pháp thay thế nhanh hơn là sử dụng lớp PEAR Date, lớp này có hỗ trợ múi giờ tích hợp sẵn và cho đến nay, là cách đơn giản nhất để thực hiện chuyển đổi ngày

Chuyển đổi múi giờ sang múi giờ cụ thể giúp đồng bộ hóa DateTime khác nhau. Rất hữu ích để cân bằng thời gian của máy chủ và giờ địa phương của người dùng. Lớp DateTime trong PHP cung cấp một cách dễ dàng để chuyển đổi dấu thời gian ngày thành UTC. Bạn có thể chuyển đổi bất kỳ múi giờ nào thành Ngày giờ UTC bằng PHP

Trong đoạn mã ví dụ, chúng tôi sẽ chỉ cho bạn cách chuyển đổi localdatetime thành UTC DateTime (YYYY-MM-DD HH. MM. định dạng SS) trong PHP

Chuyển đổi Ngày giờ hiện tại thành Ngày giờ UTC bằng PHP

$dateTime = date("Y-m-d H:i:s");
$newDateTime = new DateTime($dateTime);
$newDateTime->setTimezone(new DateTimeZone("UTC"));
$dateTimeUTC = $newDateTime->format("Y-m-d H:i:s");

Chuyển đổi Ngày giờ địa phương thành Ngày giờ UTC bằng PHP

$dateTime = '2021-04-28 18:37:54';
$tz_from = 'America/New_York';
$newDateTime = new DateTime($dateTime, new DateTimeZone($tz_from));
$newDateTime->setTimezone(new DateTimeZone("UTC"));
$dateTimeUTC = $newDateTime->format("Y-m-d H:i:s");

Sắp xếp ngày tháng và thời gian có thể là một nhiệm vụ hơi khó khăn đối với tất cả các lập trình viên. Một yêu cầu rất phổ biến là chuyển đổi thời gian từ múi giờ này sang múi giờ khác

Trong PHP, điều này được đơn giản hóa rất nhiều với các lớp thư viện chuẩn DateTime và đặc biệt là DateTimeZone

Đối với ví dụ này, giả sử chúng ta có chuỗi ngày và giờ UTC (2011-04-27 02. 45) mà chúng tôi muốn chuyển đổi sang ACST (Giờ chuẩn miền trung nước Úc)


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

$acst_date = clone $utc_date; // we don't want PHP's default pass object by reference here
$acst_date->setTimeZone(new DateTimeZone('Australia/Yancowinna'));

echo 'UTC:  ' . $utc_date->format('Y-m-d g:i A');  // UTC:  2011-04-27 2:45 AM
echo 'ACST: ' . $acst_date->format('Y-m-d g:i A'); // ACST: 2011-04-27 12:15 PM

Sau một số thử nghiệm giữa các múi giờ hiện có và không có DST (Giờ tiết kiệm ánh sáng ban ngày), tôi đã phát hiện ra rằng điều này sẽ tính đến DST

Nếu theo máy khách, ý bạn là trình duyệt, thì trước tiên bạn cần gửi tên múi giờ tới PHP từ trình duyệt, sau đó thực hiện chuyển đổi như được mô tả bên dưới

Chuyển đổi thời gian UTC sang Mỹ/Denver

// create a $dt object with the UTC timezone
$dt = new DateTime('2016-12-12 12:12:12', new DateTimeZone('UTC'));

// change the timezone of the object without changing its time
$dt->setTimezone(new DateTimeZone('America/Denver'));

// format the datetime
$dt->format('Y-m-d H:i:s T');

Điều này hoạt động với các ngày sau năm 2032, tiết kiệm ánh sáng ban ngày và giây nhuận và không phụ thuộc vào ngôn ngữ hoặc múi giờ của máy chủ

Nó sử dụng múi giờ để thực hiện phép tính, db này thay đổi theo thời gian khi quy tắc múi giờ thay đổi và phải được cập nhật. (xem ghi chú ở phía dưới)

Để chuyển đổi ngày UTC thành giờ máy chủ (cục bộ), bạn có thể sử dụng

$dateTime = '2021-04-28 18:37:54';
$tz_from = 'America/New_York';
$newDateTime = new DateTime($dateTime, new DateTimeZone($tz_from));
$newDateTime->setTimezone(new DateTimeZone("UTC"));
$dateTimeUTC = $newDateTime->format("Y-m-d H:i:s");
3 mà không cần đối số thứ hai, mặc định là múi giờ máy chủ

// create a $dt object with the UTC timezone
$dt = new DateTime('2016-12-12 12:12:12', new DateTimeZone('UTC'));

// get the local timezone
$loc = (new DateTime)->getTimezone();

// change the timezone of the object without changing its time
$dt->setTimezone($loc);

// format the datetime
$dt->format('Y-m-d H:i:s T');

Tôi khuyên bạn nên sử dụng

$dateTime = '2021-04-28 18:37:54';
$tz_from = 'America/New_York';
$newDateTime = new DateTime($dateTime, new DateTimeZone($tz_from));
$newDateTime->setTimezone(new DateTimeZone("UTC"));
$dateTimeUTC = $newDateTime->format("Y-m-d H:i:s");
4 vì nó không thay đổi các biến (không thay đổi chúng đằng sau hậu trường), nếu không thì nó hoạt động giống như
$dateTime = '2021-04-28 18:37:54';
$tz_from = 'America/New_York';
$newDateTime = new DateTime($dateTime, new DateTimeZone($tz_from));
$newDateTime->setTimezone(new DateTimeZone("UTC"));
$dateTimeUTC = $newDateTime->format("Y-m-d H:i:s");
3

// create a $dt object with the UTC timezone
$dt_utc = new DateTimeImmutable('2016-12-12 12:12:12', new DateTimeZone('UTC'));

// Create a new instance with the new timezone
$dt_denver = $dt_utc->setTimezone(new DateTimeZone('America/Denver'));

// format the datetime
$dt_denver->format('Y-m-d H:i:s T');

Tính bất biến cho phép bạn sử dụng chuỗi nhiều lần mà không thay đổi giá trị của

$dateTime = '2021-04-28 18:37:54';
$tz_from = 'America/New_York';
$newDateTime = new DateTime($dateTime, new DateTimeZone($tz_from));
$newDateTime->setTimezone(new DateTimeZone("UTC"));
$dateTimeUTC = $newDateTime->format("Y-m-d H:i:s");
6

$dt = new DateTimeImmutable('2016-12-12 12:12:12', new DateTimeZone('UTC'));

// Format $dt in Denver timezone
echo $dt->setTimezone(new DateTimeZone('America/Denver'))->format('Y-m-d H:i:s T');

// Format $dt in Madrid timezone
echo $dt->setTimezone(new DateTimeZone('Europe/Madrid'))->format('Y-m-d H:i:s T');

// Format $dt in Local server timezone
echo $dt->setTimezone((new DateTime())->getTimezone())->format('Y-m-d H:i:s T');

// create a $dt object with the UTC timezone
$dt = new DateTime('2016-12-12 12:12:12', new DateTimeZone('UTC'));

// get the local timezone
$loc = (new DateTime)->getTimezone();

// change the timezone of the object without changing its time
$dt->setTimezone($loc);

// format the datetime
$dt->format('Y-m-d H:i:s T');
0 trả về dấu thời gian unix, là một số, nó không có múi giờ

// create a $dt object with the UTC timezone
$dt = new DateTime('2016-12-12 12:12:12', new DateTimeZone('UTC'));

// get the local timezone
$loc = (new DateTime)->getTimezone();

// change the timezone of the object without changing its time
$dt->setTimezone($loc);

// format the datetime
$dt->format('Y-m-d H:i:s T');
1 trả về ngày trong múi giờ địa phương hiện tại

// create a $dt object with the UTC timezone
$dt = new DateTime('2016-12-12 12:12:12', new DateTimeZone('UTC'));

// get the local timezone
$loc = (new DateTime)->getTimezone();

// change the timezone of the object without changing its time
$dt->setTimezone($loc);

// format the datetime
$dt->format('Y-m-d H:i:s T');
2 trả về ngày trong UTC

// create a $dt object with the UTC timezone
$dt = new DateTime('2016-12-12 12:12:12', new DateTimeZone('UTC'));

// get the local timezone
$loc = (new DateTime)->getTimezone();

// change the timezone of the object without changing its time
$dt->setTimezone($loc);

// format the datetime
$dt->format('Y-m-d H:i:s T');
3 thay đổi múi giờ địa phương hiện tại

để thay đổi thời gian trong múi giờ

$dateTime = '2021-04-28 18:37:54';
$tz_from = 'America/New_York';
$newDateTime = new DateTime($dateTime, new DateTimeZone($tz_from));
$newDateTime->setTimezone(new DateTimeZone("UTC"));
$dateTimeUTC = $newDateTime->format("Y-m-d H:i:s");
1

ở đây bạn có thể thấy tất cả các múi giờ có sẵn

https. // vi. wikipedia. org/wiki/List_of_tz_database_time_zones

đây là tất cả các tùy chọn định dạng

http. //php. net/thủ công/vi/chức năng. ngày tháng. php

Cập nhật DB múi giờ PHP (trong linux)

$dateTime = '2021-04-28 18:37:54';
$tz_from = 'America/New_York';
$newDateTime = new DateTime($dateTime, new DateTimeZone($tz_from));
$newDateTime->setTimezone(new DateTimeZone("UTC"));
$dateTimeUTC = $newDateTime->format("Y-m-d H:i:s");
2

Do tiết kiệm ánh sáng ban ngày, một số ngày lặp lại ở một số múi giờ, ví dụ: ở Hoa Kỳ, ngày 13 tháng 3 năm 2011 2. 15 giờ sáng không bao giờ xảy ra, trong khi ngày 6 tháng 11 năm 2011 1. 15h xảy ra 2 lần. Những ngày giờ này không thể được xác định chính xác

Làm cách nào để chuyển đổi thời gian UTC trong PHP?

$time = strtotime($utc. ' UTC'); . i. s", $time); echo $dateInLocal; php.

Làm cách nào để có múi giờ Ấn Độ trong PHP?

php //đặt múi giờ $tz = 'Indian/Mahe'; . ". $timeZone); ?>

Làm cách nào để chuyển đổi UTC sang GMT trong PHP?

Làm cách nào để bạn chuyển đổi UTC sang GMT? .
Giờ Phối hợp Quốc tế đi trước 0 giờ so với Giờ chuẩn Greenwich. số 8. 00 giờ sáng theo giờ UTC là 8. 00 giờ sáng theo giờ GMT
8. 00 giờ sáng theo giờ phối hợp quốc tế (UTC). Bù đắp UTC 0. 00 giờ. số 8. 00 giờ sáng Giờ chuẩn Greenwich (GMT). Bù đắp UTC 0. 00 giờ
8. 00 giờ sáng UTC / 8. 00 giờ sáng theo giờ GMT

Làm cách nào để đặt múi giờ trong PHP?

Hàm date_default_timezone_set() đặt múi giờ mặc định được sử dụng bởi tất cả các hàm ngày/giờ trong tập lệnh.