Unix 时区,UTC 时间到人类可读时间的转换

TimeZone for unix, UTC time to Human readable time conversion

我正在使用 PHP 从 this API 获取天气信息。我的输出如下

我需要使用 PHP 将 sunrisesunset 值转换为人类可读的格式。在这方面,我需要使用像 Asia/Kolkata.

这样的 TimeZone

如何让 TimeZone 将 sunrisesunset 值转换为人类可读格式?

<?php
   //1638318242
   echo(gmstrftime("%B %d %Y, %X %Z",mktime(16,3,8,31,82,42))."<br>");
   setlocale(LC_ALL,"hu_HU.UTF8");
   echo(gmstrftime("%Y. %B %d. %A. %X %Z"));
?>
 // Output
 September 20 2044, 16:03:08 GMT
 2021. December 04. Saturday. 14:40:27 GMT

DateTime class 用于根据时间戳 1638318242 创建对象。如果 DateTime 对象是根据时间戳创建的,则时区始终为 UTC。 使用方法 setTimeZone() 将对象转换为所需的时区(此处 Asia/Kolkata)。然后可以使用格式方法将输出带入所需的形式。

<?php
$sunrise = 1638318242;

$dateTime = date_create('@'.$sunrise)->setTimeZone(new DateTimeZone("Asia/Kolkata"));

echo "Sunrise in Calcutta on ". $dateTime->format('F j, Y \a\t H:i');
//Sunrise in Calcutta on December 1, 2021 at 05:54