我正在开展一个项目,要求我以区域设置的形式列出一天中的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:00。但是,它输出'8:'。
如何使用datefmt_create()和dtefmt_format()以区域设置格式列出一天中的24小时?
答案 0 :(得分:0)
这有效:(已测试)
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";
}
答案 1 :(得分:0)
这样的事情应该有效
$time = strtotime('English Date With Time');
date_default_timezone_set('America/Los_Angeles or wherever');
echo date('H:i', $time);
如果您只是在做时间而不是日期,那么只需知道您所在的时区。将所有内容翻译成UTC并以24为模拟数学。