Я получаю неожиданное поведение при использовании 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 (framework) при переходе к /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 |
По сути, на обоих серверах все работает почти правильно, но на стадии подготовки любые даты, прошедшие сегодня (1 августа 2017 г.), не отображаются должным образом.
{{ strftime("%B %d, %Y", strtotime($record->timestamp)) }}
правильно рендеринг août 05, 2017
на местном, и, кажется, обрабатывает любые прошлые даты на постановке, но, похоже, ничего не делает для будущих дат. Есть записи за 12, 27 и 30 августа, которые также не отображаются должным образом.
Я не могу найти ничего связанного с будущими датами, не работающими, и фактом, что тот же самый код и набор результатов делает работа на местах заставляет меня чесать голову. Кто-нибудь сталкивался с подобной проблемой?
Задача ещё не решена.
Других решений пока нет …