簡體   English   中英

使用時區 PHP 轉換時間

[英]Converting Time with timezone PHP

我想轉換從我得到的回調原始值得到的值/日期/時間是這樣的

$value='2021-01-20T19:03:52.355+0300';

我需要把它轉換成這樣

$value='20-01-2021 23.03.52,355000 +07:00';

我做了一些 substr 和 concat 但不幸的是它以字符串結尾,我的 db 數據類型格式是時間戳,我無法將值插入到 db

閱讀一些關於 DateTime::createFromFormat 的內容,我可以轉換時間格式,但仍然不知道轉換為另一個時區

您可以使用setTimezone()更改時區:

$value    = '2021-01-20T19:03:52.355+0300';
$expected = '20-01-2021 23.03.52,355000 +07:00';

$datetime = new \DateTime($value);        
$datetime->setTimezone(new \DateTimeZone('+0700'));

var_dump($datetime->format('d-m-Y H.i.s,u P') == $expected); // bool(true)

你可以這樣做

$datetime = new \DateTime('2021-01-20T19:03:52.355+0300');        
date_format($datetime, 'd-m-Y H.i.s,u P');

您可以嘗試此代碼,這對您有用,您可以根據需要設置時區。

// Input  : '2021-01-20T19:03:52.355+0300';
// Output : '20-01-2021 23.03.52,355000 +07:00';

date_default_timezone_set('Europe/London');
$datetime = new DateTime('2021-01-20T19:03:52.355+0300');

// timezone to convert.
$la_time = new DateTimeZone('Asia/Krasnoyarsk');
$datetime->setTimezone($la_time);
echo $datetime->format('d-m-Y H.i.s,u P');

Output:

20-01-2021 23.03.52,355000 +07:00

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM