私は 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
私はグーグルで検索しましたが、この特定の PHP エラーに関するリソースが見つかりません。
同じ結果を返す括弧付きのテキストを取り除くことで、この問題を「解決」しています。
$dateString = strstr($dateString, " (", true); // Thu Nov 15 2012 00:00:00 GMT-0700
これを行うのはかなり悪いようです。これを適切に行う方法についての提案を探しています。