没有 strftime(已弃用)但有日期的本地语言
local language without strftime (deprecated) but with date
所以,我在 strftime()
被弃用之前使用了这段代码:
setlocale(LC_TIME, IT);
echo "<p>" . strftime("%A %e %h %Y", strtotime($value)) . "</p>";
现在,使用 date()
和相同的代码输出不会改变语言。
setlocale(LC_TIME, 'it_IT.utf8');
echo "<p>" . date("l d M Y", strtotime($value)) . "</p>";
**忽略变量 $value
我在 date()
上看不到 setlocale(LC_TIME, 'IT')
和 setlocale(LC_TIME, 'it_IT.utf8')
之间的区别...但是 strftime()
仅适用于 setlocale(LC_TIME, 'IT')
而不是第二个一个
有什么想法吗?
date()
function use format accepted by DateTimeInterface::format()
方法。
方法DateTimeInterface::format()
不使用语言环境。所有输出均为英文。
所以,这意味着 date()
函数也不使用语言环境。
测试:
setlocale(LC_ALL, 'IT.utf8');
echo date('l', time()).'<br>';// display Friday
setlocale(LC_ALL, 'fr');
echo date('l', time()).'<br>';// display Friday
setlocale(LC_ALL, 'th');
echo date('l', time()).'<br>';// display Friday
所有区域显示相同:星期五。
strftime()
已弃用。
用语言环境(可能包括时区)替代显示 date/time 的是什么?
IntlDateFormatter
是最好的选择。
来自您之前的代码:
setlocale(LC_TIME, 'IT.utf8');
echo "<p>" . strftime("%A %e %h %Y", time()) . "</p>";// display venerdì 15 apr 2022
您现在可以使用:
$fmt = new IntlDateFormatter('IT',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL
);
$fmt->setPattern('EEEE d LLL yyyy');
echo $fmt->format(time());// display venerdì 15 apr 2022
格式将使用 setPattern()
方法,可能的模式记录在 https://unicode-org.github.io/icu/userguide/format_parse/datetime/。
所以,我在 strftime()
被弃用之前使用了这段代码:
setlocale(LC_TIME, IT);
echo "<p>" . strftime("%A %e %h %Y", strtotime($value)) . "</p>";
现在,使用 date()
和相同的代码输出不会改变语言。
setlocale(LC_TIME, 'it_IT.utf8');
echo "<p>" . date("l d M Y", strtotime($value)) . "</p>";
**忽略变量 $value
我在 date()
上看不到 setlocale(LC_TIME, 'IT')
和 setlocale(LC_TIME, 'it_IT.utf8')
之间的区别...但是 strftime()
仅适用于 setlocale(LC_TIME, 'IT')
而不是第二个一个
有什么想法吗?
date()
function use format accepted by DateTimeInterface::format()
方法。
方法DateTimeInterface::format()
不使用语言环境。所有输出均为英文。
所以,这意味着 date()
函数也不使用语言环境。
测试:
setlocale(LC_ALL, 'IT.utf8');
echo date('l', time()).'<br>';// display Friday
setlocale(LC_ALL, 'fr');
echo date('l', time()).'<br>';// display Friday
setlocale(LC_ALL, 'th');
echo date('l', time()).'<br>';// display Friday
所有区域显示相同:星期五。
strftime()
已弃用。
用语言环境(可能包括时区)替代显示 date/time 的是什么?
IntlDateFormatter
是最好的选择。
来自您之前的代码:
setlocale(LC_TIME, 'IT.utf8');
echo "<p>" . strftime("%A %e %h %Y", time()) . "</p>";// display venerdì 15 apr 2022
您现在可以使用:
$fmt = new IntlDateFormatter('IT',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL
);
$fmt->setPattern('EEEE d LLL yyyy');
echo $fmt->format(time());// display venerdì 15 apr 2022
格式将使用 setPattern()
方法,可能的模式记录在 https://unicode-org.github.io/icu/userguide/format_parse/datetime/。