在网站上使用strftime
时,我遇到了一些意想不到的行为。我有一个records
列表,每个列表都有一个时间戳:
$records = [
0 => [
"timestamp" => "2017-06-30 16:30:00"
], 1 => [
"timestamp" => "2017-07-31 09:00:00"
], 2 => [
"timestamp" => "2017-08-05 09:00:00"
], ...
];
在我的.blade.php
文件中,我循环遍历这些记录,并将时间戳转换为可读的字符串,包括英语和法语(取决于路线):
@foreach($records AS $record)
{{ date("M j, Y", strtotime($record->timestamp)) }}
{{ date("g:i A", strtotime($record->timestamp)) }}
@endforeach
或
@foreach($records AS $record)
{{ strftime("%B %d, %Y", strtotime($record->timestamp)) }}
{{ strftime("%kh%M", strtotime($record->timestamp)) }}
@endforeach
注意:导航到setLocale(LC_TIME, "fr_FR");
路由时,Statamic(框架)会自动设置/fr
。
我是我的本地服务器,这一切都完美无瑕。我得到一个包含人类可读时间戳的记录列表。当我将它推送到登台服务器时,结果有点奇怪:
| lang | local | staging |
|======================================================|
| EN | Jun 30, 2017 4:30 PM | Jun 30, 2017 4:30 PM |
| EN | Jul 31, 2017 9:00 AM | Jul 31, 2017 9:00 AM |
| EN | Aug 5, 2017 9:00 AM | Aug 5, 2017 9:00 AM |
| FR | juin 30, 2017 16h30 | juin 30, 2017 16h30 |
| FR | juillet 31, 2017 9h00 | juillet 31, 2017 9h00 |
| FR | août 05, 2017 9h00 | 9h00 |
基本上,一切都在两台服务器上都能正常工作,但在暂存时,今天(2017年8月1日)以后的任何日期都无法正常呈现。
{{ strftime("%B %d, %Y", strtotime($record->timestamp)) }}
正确地在本地呈现août 05, 2017
,并且似乎处理过时的任何过去日期,但它似乎没有为将来的日期做任何事情。 8月12日,27日和30日的记录也没有正确呈现。
我找不到任何与未来日期无关的内容,以及相同的代码和结果集 在本地工作的事实让我感到头疼。有没有人遇到类似的问题?