2016-01-23 2 views
1

Я создал тестовый пример Behat для утверждения даты и времени. Datetime был сохранен в вашем формате UTC в моей базе данных. Таким образом, используя функцию IntlDateFormatter для преобразования обратно в зависимости от выбранной локали, например en, de или fr.Утверждение даты и времени в тестовом примере Behat, сохраненном в формате UTC в базе данных

Проблема, с которой я столкнулся, - это тест на случай, который работает нормально на моей локальной машине, но на сервере я должен утверждать, что дата-время такое же, как формат UTC базы данных.

Например, сохраненная величина - 2016-01-01 00:00:00. Значение, отображаемое на сайте, - «01-01-2016 01:00» после преобразования обратно в значение php с UTC.

О локальном утверждении, которое работает с 01-01-2016 01:00. Но на сервере он работает с «01-01-2016 00:00», а не с «01-01-2016 01:00».

Может ли кто-нибудь сказать мне, почему для теста datetime не выполнено тестовое дело?

+0

Покажите нам код ... –

+0

Мой проект находится в symfony2, поэтому, используя класс UTCDateTimeType для хранения в базе данных. И конвертировать обратно с выбранной локалью и форматировать как. '$ formatter = new \ IntlDateFormatter ( $ this-> locale, \ IntlDateFormatter :: LONG, $ time? \ IntlDateFormatter :: SHORT: \ IntlDateFormatter :: NONE ); $ formatter-> setPattern ( $ time? $ This-> getDateFormat ($ this-> locale): strtok ($ this-> getDateFormat ($ this-> locale), '') ); который терпит неудачу ** Затем я должен увидеть «01/01/2016 01:00» ** –

ответ

2

Вы, кажется, игнорируете настройки часового пояса при создании даты.

Вам необходимо либо явно определить часовой пояс во всех местах, где вы создаете дату (ваш код и тест на результат), либо убедиться, что все ваши среды имеют одинаковые настройки часового пояса (для php и, возможно, базы данных).

Второй вариант, вероятно, будет проще и быстрее для вас. Первый - более пуленепробиваемый.

+0

Тип класса типа UTC datetime автоматически, преобразуя часовой пояс сервера в utc и обратно в utc для серверного часового пояса. –

+0

Вы уверены, что хотите отобразить его в UTC? –

+0

Спасибо Якуб, проблема решена Я применил часовой пояс, но проблема была на стороне сервера, чтобы установить часовой пояс по умолчанию. –

Смежные вопросы