Hướng dẫn get timezone from timestamp php - lấy múi giờ từ php dấu thời gian

Đã thấy câu trả lời với giải pháp bù và tôi nghĩ rằng trừ khi bạn tiết kiệm thời gian của bạn trong cơ sở dữ liệu trong UTC hoặc UNIX Dấu thời gian, họ sẽ không giúp đỡ. Vấn đề, khi nói đến GetTimestamp (), là múi giờ không được xem xét ngay cả khi bạn bắt đầu đối tượng ... làm thế nào để giải thích nó :) ... giả sử bạn có một số sự kiện với ngày và thời gian trong bạn DB . Bạn cũng có thời gian được cấu hình chính xác. Tôi sẽ đặt những thứ này vào VAR cho ví dụ này, vì vậy nó có thể thấy rõ hơn:

$dateTime = '25.08.2018 16:45:15';//some event in your db //can be any valid format
$localTimezone = 'Europe/Berlin';
$dateTimeLocal = new \DateTime($dateTime, new \DateTimeZone($localTimezone));
var_dump($dateTimeLocal->getTimestamp());`

Bây giờ ... khi bạn làm điều này, bạn chuyển DateTime và múi giờ của bạn cho hàm tạo. Những gì bạn mong đợi là PHP tôn trọng múi giờ của bạn và bạn nhận được dấu thời gian UTC tương ứng với 16:45 ở Berlin, đó sẽ là UTC 15:45 vào mùa đông và UTC 14:45 vào mùa hè. Nó sẽ không xảy ra - những gì bạn nhận được là dấu thời gian tương ứng với UTC 16:45. Nếu bạn thêm phần bù bây giờ bạn sẽ nghỉ một hoặc hai giờ.

Cách chính xác để thực hiện điều này là bắt đầu đối tượng, đặt/chuyển thời gian, tạo một datetime được định dạng để tôn trọng múi giờ và sau đó nhận dấu thời gian từ DateTime được định dạng. Nó có thể chậm hơn một chút, nhưng đó là múi giờ không chứng minh được:

$date = '25.08.2018 16:45:15';//some event in your db //can be any valid format
$format = 'Y-m-d H:i:s';//just a format we will use for this example //also can be any valid format
$localTimezone = 'Europe/Berlin';
$remoteTimezone = 'America/Lima';
$dateTime = new \DateTime($date, new \DateTimeZone($localTimezone));
$dateTime->setTimezone(new \DateTimeZone($remoteTimezone));
$timestampLima = DateTime::createFromFormat($format, $dateTime->format($format))->getTimestamp();

DateTimeImmutable::getTimezone

DateTime::getTimezone

date_timezone_get

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

Datetimeinterface :: getTimezone - datetimeMutable :: getTimezone - datetime :: getTimezone - date_timezone_get - return Time múi múi thời gian liên quan đến DateTime đã cho -- DateTimeImmutable::getTimezone -- DateTime::getTimezone -- date_timezone_getReturn time zone relative to given DateTime

Sự mô tả

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

PublicDateTimeInterface :: GetTimeZone (): Datetimezone | Sai DateTimeInterface::getTimezone(): DateTimeZone|false

publicDateTimeMmutable :: getTimezone (): datetimezone | false DateTimeImmutable::getTimezone(): DateTimeZone|false

publicDateTime :: getTimezone (): datetimezone | false DateTime::getTimezone(): DateTimeZone|false

Trả về giá trị

Trả về một đối tượng Datetimezone khi thành công hoặc false khi thất bại.DateTimeZone object on success or false on failure.

Ví dụ

Ví dụ #1 Thời gian () Ví dụDateTime::getTimezone() example

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

<?php
$date 
= new DateTimeImmutable(null, new DateTimeZone('Europe/London'));
$tz $date->getTimezone();
echo 
$tz->getName();
?>

PublicDateTimeInterface :: GetTimeZone (): Datetimezone | Sai

<?php
$date 
date_create(nulltimezone_open('Europe/London'));
$tz date_timezone_get($date);
echo 
timezone_name_get($tz);
?>

publicDateTimeMmutable :: getTimezone (): datetimezone | false

publicDateTime :: getTimezone (): datetimezone | false

(Php 4, Php 5, Php 7, Php 8)

Thời gian - Trả lại dấu thời gian UNIX hiện tạiReturn current Unix timestamp

Sự mô tả

thời gian (): int(): int

Ghi chú::

Dấu thời gian UNIX không chứa bất kỳ thông tin nào liên quan đến bất kỳ timezone địa phương nào. Nên sử dụng lớp DateTimeMimTable để xử lý thông tin ngày và thời gian để tránh những cạm bẫy đi kèm với dấu thời gian UNIX.DateTimeImmutable class for handling date and time information in order to avoid the pitfalls that come with just Unix timestamps.

Thông số

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

Trả về giá trị

Trả về dấu thời gian hiện tại.

Ví dụ

Ví dụ #1 Thời gian () Ví dụtime() example

<?php
echo 'Now: 'time();
?>

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

Ghi chú

Xem thêm

  • Datetimeimmutable
  • date () - định dạng dấu thời gian unix
  • Microtime () - Trả về dấu thời gian UNIX hiện tại với micro giâ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').

Thời gian () làm gì trong PHP?

Định nghĩa và sử dụng hàm Thời gian () trả về thời gian hiện tại với số giây kể từ thời đại UNIX (ngày 1 tháng 1 năm 1970 00:00:00 GMT).returns the current time in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).

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

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.Để có được tên và bù timezone, bạn có thể sử dụng lệnh dữ liệu với đối số +" %z %z".use the date command. By giving it the argument +%Z , you can output your system's current time zone name. To get the timezone name and offset, you can use the data command with the +"%Z %z" argument.

Các tham số thời gian PHP là gì?

Hàm Php Mktime..
Mktime (Mk) là chức năng tạo thời gian php ..
Giờ giờ là tùy chọn, đó là số giờ ..
Phút phút là tùy chọn, đó là số phút ..
Thứ hai là một tùy chọn, nó là số giây ..
Tháng tháng là tùy chọn, đó là số của tháng ..
Ngày ngày là tùy chọn, đó là số lượng trong ngày ..