Hướng dẫn how to get local timezone name in php? - làm thế nào để lấy tên múi giờ địa phương trong php?

Bạn có thể nhận được thời gian đặt trong máy chủ, đó là cách tốt nhất bạn có thể nhận được. Nếu bạn muốn America/Chicago, bạn sẽ cần phải định cấu hình nó trong máy chủ.

Bạn cũng có thể chỉ định múi giờ bạn muốn làm việc khi khởi tạo một đối tượng DateTime mới, nhưng vì máy chủ có thể được đặt là UTC, bạn cần cẩn thận và tung hứng chuyển đổi. Ví dụ:

 $dt = new DateTime('2014-06-22 11:10:58', new DateTimeZone('UTC'));
 $dt->setTimezone(new DateTimeZone("Europe/Paris"));
 $dateString = $dt->format('Y-m-d h:i:s');

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

date_default_timezone_get - Nhận thời gian mặc định được sử dụng bởi tất cả các hàm ngày/giờ trong tập lệnh Gets the default timezone used by all date/time functions in a script

Sự mô tả

date_default_timezone_get (): Chuỗi(): string

  • Đọc bộ timezone bằng hàm date_default_timezone_set () (nếu có)date_default_timezone_set() function (if any)

  • Đọc giá trị của ngày.Timezone Ini (nếu đặt)

Nếu không có điều nào ở trên thành công, DATE_DEFAULT_TIMEZONE_GET () sẽ trả về thời gian mặc định là UTC.date_default_timezone_get() will return a default timezone of UTC.

Thông số

Chức năng này không có tham số.

Trả về giá trị

Trả về một chuỗi.string.

Ví dụ

Ví dụ #1 Nhận thời gian mặc định

date_default_timezone_set('Europe/London');

if (

date_default_timezone_get()) {
    echo 
'date_default_timezone_set: ' date_default_timezone_get() . '';
}

if (

ini_get('date.timezone')) {
    echo 
'date.timezone: ' ini_get('date.timezone');
}
?>

Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:

date_default_timezone_set: Europe/London
date.timezone: Europe/London

Ví dụ #2 Nhận chữ viết tắt của múi giờ

date_default_timezone_set: Europe/London
date.timezone: Europe/London
0

Ví dụ trên sẽ xuất ra:

America/Los_Angeles => America/Los_Angeles => PST

Xem thê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
  • Danh sách thời gian được hỗ trợ

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

Sử dụng các trường hợp nhận được múi giờ của trình duyệt

Nhận thời gian của người dùng có thể giúp ứng dụng của bạn hiển thị ngày và thời gian so với trình duyệt của người dùng. Điều này có nghĩa là người dùng ở New York sẽ thấy thời gian so với thời gian của Mỹ/New_York, trong khi người dùng ở Ấn Độ sẽ thấy thời gian theo Timezone châu Á/Kolkata.America/New_York timezone, while a user in India will see time according to the Asia/Kolkata timezone.

Một trường hợp sử dụng khác có thể được sử dụng thời gian của người dùng để tạo ra một sự kiện thay mặt anh ta với các API lịch như của Google và Outlook. Người dùng có thể chọn thời gian từ mặt trận và trong phần phụ trợ, ứng dụng tạo ra một sự kiện tại thời điểm đó, sử dụng múi giờ của trình duyệt. Cần lưu ý rằng tất cả các API lịch cần một múi giờ để tạo ra một sự kiện.

Phát hiện tên múi giờ của người dùng

Phát hiện timezoone của người dùng là một quá trình hai bước:

  1. Nhận phần bù múi giờ của trình duyệt với JavaScript và gửi nó đến PHP (thông qua AJAX hoặc một cái gì đó).
  2. Chuyển đổi phần bù múi giờ thành tên múi giờ cơ sở dữ liệu TZ hợp lệ như America/New_York, Asia/Kolkata.America/New_York, Asia/Kolkata.

1) Nhận phần bù múi giờ của trình duyệt

JavaScript có phương thức GetTimezoneOffset mang lại sự khác biệt về thời gian, trong vài phút, từ giờ địa phương đến UTC. Chúng ta cần chuyển phần bù này cho máy chủ.getTimezoneOffset method which gives timezone difference, in minutes, from current local time to UTC. We need to pass this offset to the server.

Cần lưu ý rằng GetTimezoneOffset trả về một phần bù là dương tính nếu timezone cục bộ đứng sau UTC và tiêu cực nếu nó ở phía trước. Vì vậy, chúng ta phải thêm một dấu hiệu đối diện (+ hoặc -) vào phần bù.getTimezoneOffset returns an offset which is positive if the local timezone is behind UTC and negative if it is ahead. So we must add an opposite sign (+ or -) to the offset.

var timezone_offset_minutes = new Date().getTimezoneOffset();
timezone_offset_minutes = timezone_offset_minutes == 0 ? 0 : -timezone_offset_minutes;

// Timezone difference in minutes such as 330 or -360 or 0
console.log(timezone_offset_minutes); 

2) Trong PHP, chuyển đổi thời gian bù thời gian trong vài phút sang tên múi giờ

Bạn có thể nhận tên timezone từ thời gian bù trong vài phút thông qua hàm timezone_name_from_abbr.timezone_name_from_abbr function.

// This is just an example. In application this will come from Javascript (via an AJAX or something)
$timezone_offset_minutes = 330;  // $_GET['timezone_offset_minutes']

// Convert minutes to seconds
$timezone_name = timezone_name_from_abbr("", $timezone_offset_minutes*60, false);

// Asia/Kolkata
echo $timezone_name;

Bây giờ khi bạn nhận được tên timezone, bạn có thể nhận được ngày và thời gian tương đối với múi giờ của người dùng:

date_default_timezone_set($timezone_name);

Thử nghiệm

Nhấp vào nút bên dưới để xem tên của múi giờ hiện tại của bạn:

Làm thế nào để tôi tìm thấy múi giờ của máy chủ của tôi?

Timezone hiện được cấu hình hiện được đặt trong tệp /etc /timezone.Để xem timezone hiện tại của bạn, bạn có thể làm cho nội dung của tệp.Một phương pháp khác là sử dụng lệnh ngày.Bằng cách đưa cho nó đối số +%z, bạn có thể xuất tên múi giờ hiện tại của hệ thống.cat the file's contents. Another method is to use the date command. By giving it the argument +%Z , you can output your system's current time zone name.

Thời gian mặc định trong PHP là gì?

Nếu không có điều nào ở trên thành công, DATE_DEFAULT_TIMEZONE_GET () sẽ trả về một múi giờ mặc định của UTC.UTC .

Múi giờ UTC trong PHP là gì?

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 cách nào để thay đổi múi giờ mặc định trong PHP?

Hàm date_default_timezone_set () đặt thời gian mặc định được sử dụng bởi tất cả các hàm ngày/thời gian trong tập lệnh.date_default_timezone_set() function sets the default timezone used by all date/time functions in the script.