我正在做一个项目,它要求我以语言环境格式列出一天中的 24 小时。
这是我所拥有的:
$time_fmt = datefmt_create(ICL_LANGUAGE_CODE, IntlDateFormatter::LONG, IntlDateFormatter::LONG, '', IntlDateFormatter::GREGORIAN, 'H:i');
echo datefmt_format($time_fmt, mktime(1, 0));
这似乎应该是 01:00 或 1:00am,具体取决于区域设置。但是,它输出的是"8:"。
如何使用 datefmt_create() 和 dtefmt_format() 以区域设置格式列出一天中的 24 小时?
这样的东西应该有效
$time = strtotime('English Date With Time');
date_default_timezone_set('America/Los_Angeles or wherever');
echo date('H:i', $time);
如果您只是在做时间,而不是日期,那么只需知道您在哪个时区。将所有内容转换为 UTC 并做一些数学模 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";
}