strftime()本地服务器和临时服务器之间的问题

时间:2017-08-01 15:55:10

标签: php laravel strftime statamic

在网站上使用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日的记录也没有正确呈现。

我找不到任何与未来日期无关的内容,以及相同的代码和结果集 在本地工作的事实让我感到头疼。有没有人遇到类似的问题?

0 个答案:

没有答案