Я создаю PHP DateTime со строкой вроде:DateTime createfromformat лань не работает
$time = '19:14, 9 June 2016 (UTC)';
\DateTime($time);
Это работает очень хорошо, а потому, что время идет от внешнего Ressource, его когда-то недопустимого как
$time = '19:14, 9 oktober 2016 (UTC)'; #oktober instead of october
Затем DateTime заканчивается фатальной ошибкой. Чтобы предотвратить это, я хотел проверить, действительно ли timestring действительна перед использованием DateTime. Единственное решение, которое я нашел, - использовать DateTime::createFromFormat()
. Мне не нравится это решение, потому что в новом DateTime()
я могу использовать несколько форматов, в createFromFormat
Мне нужно проверить каждый формат.
Однако вторая проблема в том, что createFromFormat
даже не распознает правильный TimeString:
$time = '19:14, 9 June 2016 (UTC)';
$valid = \DateTime::createFromFormat('H:i, d F Y (e)', $time);
возвращает ложное. Но, используя формат по дате() возвращает точно ту же строку:
echo date('H:i, d F Y (e)', time());
#12:14, 22 June 2016 (UTC)
Является ли ваш регион GMT + 7? –
почему? script timezone is utc – Asara
Без часового пояса это работает, но почему это не работает с часовым поясом - это то, что нужно исследовать ... –