PHP 不显示 UTC Z 时区指示符

发布于 2024-12-18 13:23:27 字数 1635 浏览 4 评论 0原文

当我尝试将日期格式化为 UTC 时,它不显示 UTC 零时区指示符的“z” 。这是图书馆的问题吗?

# Define Some date
$scheduledDate = "2011-11-23T10:25:00";
echo $scheduledDate . "\n";

# Convert to DateTime object    
$startTime = DateTime::createFromFormat('Y-m-d\TH:i:s', $scheduledDate);    
print_r($startTime) ;

# Verify Time Zone
$sDate = $startTime -> format(DateTime::ATOM);
echo "\nAtom Date:\t" . $sDate . "\n";

# Convert to UTC time
$startTimestr =  strtotime ($startTime -> format(DateTime::ATOM));
echo "epoch Time:\t" . $startTimestr . "\n";

# Print Different Formats   
$gmDate = gmdate(DateTime::ATOM , $startTimestr);
echo "ATOM:\t\t" . $gmDate . "\n";
$gmDate = gmdate(DateTime::ISO8601 , $startTimestr);
echo "ISO8601:\t" . $gmDate . "\n";
$gmDate = gmdate(DateTime::RFC3339 , $startTimestr);
echo "RFC3339:\t" . $gmDate . "\n";
$gmDate = gmdate(DateTime::W3C , $startTimestr);
echo "W3C:\t\t" . $gmDate . "\n";

结果如下所示:

2011-11-23T10:25:00

DateTime Object
(
    [date] => 2011-11-23 10:25:00
    [timezone_type] => 3
    [timezone] => America/Denver
)

Atom Date:  2011-11-23T10:25:00-07:00
epoch Time: 1322069100
ATOM:       2011-11-23T17:25:00+00:00
ISO8601:    2011-11-23T17:25:00+0000
RFC3339:    2011-11-23T17:25:00+00:00
W3C:        2011-11-23T17:25:00+00:00

请注意,所有格式都没有 z。我本以为

Atom Date:  2011-11-23T10:25:00-07:00
epoch Time: 1322069100
ATOM:       2011-11-23T17:25:00z
ISO8601:    2011-11-23T17:25:00z
RFC3339:    2011-11-23T17:25:00z
W3C:        2011-11-23T17:25:00z

When I try to format a date to UTC, It doesn't show the 'z' for the UTC zero timezone designator. Is this a problem with the library?

# Define Some date
$scheduledDate = "2011-11-23T10:25:00";
echo $scheduledDate . "\n";

# Convert to DateTime object    
$startTime = DateTime::createFromFormat('Y-m-d\TH:i:s', $scheduledDate);    
print_r($startTime) ;

# Verify Time Zone
$sDate = $startTime -> format(DateTime::ATOM);
echo "\nAtom Date:\t" . $sDate . "\n";

# Convert to UTC time
$startTimestr =  strtotime ($startTime -> format(DateTime::ATOM));
echo "epoch Time:\t" . $startTimestr . "\n";

# Print Different Formats   
$gmDate = gmdate(DateTime::ATOM , $startTimestr);
echo "ATOM:\t\t" . $gmDate . "\n";
$gmDate = gmdate(DateTime::ISO8601 , $startTimestr);
echo "ISO8601:\t" . $gmDate . "\n";
$gmDate = gmdate(DateTime::RFC3339 , $startTimestr);
echo "RFC3339:\t" . $gmDate . "\n";
$gmDate = gmdate(DateTime::W3C , $startTimestr);
echo "W3C:\t\t" . $gmDate . "\n";

The Results looks like:

2011-11-23T10:25:00

DateTime Object
(
    [date] => 2011-11-23 10:25:00
    [timezone_type] => 3
    [timezone] => America/Denver
)

Atom Date:  2011-11-23T10:25:00-07:00
epoch Time: 1322069100
ATOM:       2011-11-23T17:25:00+00:00
ISO8601:    2011-11-23T17:25:00+0000
RFC3339:    2011-11-23T17:25:00+00:00
W3C:        2011-11-23T17:25:00+00:00

Notice that none of the formats have z. I would have expected

Atom Date:  2011-11-23T10:25:00-07:00
epoch Time: 1322069100
ATOM:       2011-11-23T17:25:00z
ISO8601:    2011-11-23T17:25:00z
RFC3339:    2011-11-23T17:25:00z
W3C:        2011-11-23T17:25:00z

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文