gpt4 book ai didi

php - 为什么我的 IntlDateFormatter 格式化错误的日期?

转载 作者:搜寻专家 更新时间:2023-10-31 20:57:38 25 4
gpt4 key购买 nike

<分区>

我正在尝试格式化过去的日期,但显然没有这样做。

问题是,日期不仅有几个小时的偏差(这可能是由于不同的时区),而是有 5 天的偏差。

这是我的示例代码:

<?php

$locale = "de";
$intlTimezone = \IntlTimeZone::createDefault();
$dateTimezone = $intlTimezone->toDateTimeZone();
$calendar = new \IntlGregorianCalendar($intlTimezone, $locale);
$dateFormatter = \IntlDateFormatter::create($locale, 2, -1, $intlTimezone, $calendar, "dd.MM.y");

$time = DateTimeImmutable::createFromFormat("Y-m-d", "978-12-27", $dateTimezone);
var_dump($time);
var_dump($time->format("d.m.Y"));
var_dump($dateFormatter->format($time));

你可以在 3v4l.org 上看到它:https://3v4l.org/tXVgn

这是输出:

object(DateTimeImmutable)#5 (3) {
["date"]=>
string(26) "0978-12-27 14:31:03.000000"
["timezone_type"]=>
int(2)
["timezone"]=>
string(3) "CET"
}
string(10) "27.12.0978"
string(9) "22.12.978"

最后一个值似乎有误。另请注意,PHP <= 7.0.33 无法对其进行格式化并返回 false

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com