我应该如何获得日期和月份(即Friday,August)与相应的区域设置(即de_DE)在PHP?大多数示例使用setlocale()和strftime(),最后一个在PHP 8.1.0中被弃用。
Friday
August
de_DE
setlocale()
strftime()
ki1q1bka1#
您对strftime()被弃用的看法是正确的,date()(作为DateTimeInterface的一部分)将无法与setlocale()一起使用。有一件事可以用它来做,那就是IntlDateFormatter:
date()
DateTimeInterface
$fmt = new IntlDateFormatter('de_DE', IntlDateFormatter::FULL, IntlDateFormatter::FULL ); echo $fmt->format(time());
将输出:27岁的萨姆斯塔格2022年8月00日00:58:15 GMT您可以使用预定义常量来为DateType和TimeType指定不同的格式。我以Full为例。点击此处了解更多信息。您也可以更改Pattern
$fmt->setPattern('yyyymmdd hh:mm:ss z'); echo $fmt->format(time());
输出(例如):20220427 01:04:51 GMT
y4ekin9u2#
我更喜欢使用本地的DateTime类,例如
$copenhagen_timezone = new DateTimeZone('Europe/Copenhagen'); $today = new DateTime('now', $copenhagen_timezone);
所以事后计算时差很容易
2条答案
按热度按时间ki1q1bka1#
您对
strftime()
被弃用的看法是正确的,date()
(作为DateTimeInterface
的一部分)将无法与setlocale()
一起使用。有一件事可以用它来做,那就是IntlDateFormatter:将输出:
27岁的萨姆斯塔格2022年8月00日00:58:15 GMT
您可以使用预定义常量来为DateType和TimeType指定不同的格式。我以Full为例。点击此处了解更多信息。
您也可以更改Pattern
输出(例如):
20220427 01:04:51 GMT
y4ekin9u2#
我更喜欢使用本地的DateTime类,例如
所以事后计算时差很容易