4

我正在开展一个项目,该项目要求我以语言环境格式列出一天中的 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 小时?

4

2 回答 2

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";
}
于 2013-09-06T07:46:44.103 回答
0

像这样的东西应该工作

$time = strtotime('English Date With Time');
date_default_timezone_set('America/Los_Angeles or wherever');
echo date('H:i', $time);

如果您只是在计算时间,而不是日期,那么只需知道您所在的时区。将所有内容转换为 UTC 并做一些模 24 的数学运算。

于 2013-09-06T15:08:20.020 回答