簡體   English   中英

PHP 中的 IST 日期格式的 UTC 日期不變

[英]UTC date not changing in IST date format in PHP

As based on REST API page documentation the date is in UTC format as yyyy-MM-dd'T'HH:mm:ss (Eg: 2017-01-02T08:12:53) When I hit the API, I am getting the日期為1619693307000 使用 PHP 中的strtotime()轉換此日期。 在 PHP 中的dmY h:i:s IST中轉換此日期的正確方法是什么。

我用這段代碼來做同樣的事情。

<?php echo date("Y-m-d h:i:s", '1619693307000') ?> //OUTPUT: 53296-01-14 01:00:00 

上面的output是絕對錯誤的。 困惑是將UTC正確轉換為IST區域,我應該怎么做才能看到正確的output作為PHP中的日期。 我閱讀了 StackOverflow 和 Google 上的所有線程。 但都沒有幫助。

請幫忙...

您的時間戳有太多數字,因此可能以毫秒為單位。 這似乎是一個常見的 javascript 事情。 所以除以 1000,我強烈建議使用DateTime對象/接口而不是舊式strtotime() / date() /etc 函數。

$millis = 1619693307000;
$seconds = $millis / 1000;

$t = new DateTime('', new DateTimezone('Asia/Kolkata'));
$t->setTimestamp($seconds);

var_dump(
    $t->format("Y-m-d h:i:s T")
);

Output:

string(23) "2021-04-29 04:18:27 IST"

“UTC”也不是一種格式,它是一個時區。 2017-01-02T08:12:53是 ISO8601 格式。 它還有一個方便的格式快捷方式:

var_dump(
    $t->format("c")
);

Output:

string(25) "2021-04-29T16:18:27+05:30"

編輯:不同的時區和格式:

$t = new DateTime('', new DateTimezone('UTC'));
$t->setTimestamp($seconds);

var_dump(
    $t->format("Y-m-d\Th:i:s")
);

Output:

string(19) "2021-04-29T10:48:27"

暫無
暫無

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

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