我正在开发一个项目,要求我以区域设置格式列出一天中的 24 小时。
这是我所拥有的:
$time_fmt = datefmt_create(ICL_LANGUAGE_CODE, IntlDateFormatter::LONG, IntlDateFormatter::LONG, '', IntlDateFormatter::GREGORIAN, 'H:i');
echo datefmt_format($time_fmt, mktime(1, 0));
Run Code Online (Sandbox Code Playgroud)
根据区域设置,这似乎应该为 01:00 或 1:00am。但是,它输出“8:”。
如何使用 datefmt_create() 和 dtefmt_format() 以区域设置格式列出一天中的 24 小时?
这有效:(已测试)
date_default_timezone_set('America/Los_Angeles');
setlocale(LC_TIME, "en_US");
$times = array(
'00:00:00',
'01:00:00',
'02:00:00',
'03:00:00',
'04:00:00',
'05:00:00',
'06:00:00',
'07:00:00',
'08:00:00',
'09:00:00',
'10:00:00',
'11:00:00',
'12:00:00',
'13:00:00',
'14:00:00',
'15:00:00',
'16:00:00',
'17:00:00',
'18:00:00',
'19:00:00',
'20:00:00',
'21:00:00',
'22:00:00',
'23:00:00'
);
foreach( $times as $time ){
echo strftime("%X", strtotime($time)) . "\n";
}
Run Code Online (Sandbox Code Playgroud)