Я использую jquery daterangepicker, который, в свою очередь, использует jQuery datapicker.
Моя система Ubuntu работает нормально. Браузер отправляет разборную строку:
$dateStarted = new \DateTime($post['startDate']); // Thu Nov 15 2012 00:00:00 GMT-0700 (MST)
print_r($dateStarted);
Выходы:
DateTime Object
(
[date] => 2012-11-15 00:00:00
[timezone_type] => 1
[timezone] => -07:00
)
В нашей системе тестеров Windows браузер отправляет расширенный часовой пояс в строку:
$dateStarted = new \DateTime($post['startDate']); // Thu Nov 15 2012 00:00:00 GMT-0700 (Mountain Standard Time)
print_r($dateStarted);
Выбрасывает и исключает:
Exception: DateTime::__construct(): Failed to parse time string
(Thu Nov 15 2012 00:00:00 GMT-0700 (Mountain Standard Time))
at position 41 (i): Double timezone specification
Я googled вокруг и не могу найти какие-либо ресурсы на этой конкретной ошибке PHP.
Я "решаю" эту проблему, разделив текст в квадратных скобках, который возвращает те же результаты:
$dateString = strstr($dateString, " (", true); // Thu Nov 15 2012 00:00:00 GMT-0700
Это выглядит довольно плохо, и я ищу предложения о том, как это сделать правильно.