5

私の OS X 10.7.3 (Lion) ラップトップでは、Date コンストラクターを使用して Qt WebKit で JavaScript 日付文字列を解析できません。jasmine-headless-webkit または phantomJS のいずれかを使用すると、すべての呼び出しは次のようになります。

new Date("2012-04-10")

いつも戻る

"Invalid Date"

有効な Date オブジェクトの代わりに。数週間前、すべてが正常に機能していました。同様のセットアップを使用して 6 台のコンピューターでこれを確認しましたが、他の場所では問題を再現できませんでした。

おそらく使用されていないと思われる古い MacPorts インストールを一掃することにしたときに問題が始まったことはかなり確信しています (私はずっと前に Homebrew に切り替えて、家の掃除をしていました)。私のシステムから削除された動的にリンクされたライブラリがあり、Qt が日付の解析に使用していると思われます。

この日付解析ライブラリの名前を知っている人はいますか? Homebrew でインストールするか、欠落している依存関係を手動で修復できるかどうか、何か考えはありますか?

Qt や他の多くのライブラリを再インストールしようとしましたが、問題は解決しませんでした。

4

4 に答える 4

2

私は Mac を持っていませんが、Windows で同様の状況が発生した場合、Dependency Walker のようなアプリケーションの依存関係に関する情報を報告できるプログラムを使用します。簡単な検索で、このプログラムが Mac の世界で役立つ可能性があることが示唆されました。

于 2012-04-11T01:46:32.730 に答える
1

OK、jasmine-headless-webkit で日付の解析に関する問題を解決しました。残念ながら、私はそれについて十分に科学的ではなかったので、何がそれを修正したのか正確にはわかりません. 次のプロセスの一部またはすべてである可能性があります。

  1. /Library/Frameworks/Qt* および自作 (/usr/local/Qt* および /usr/local/Cellar/qt*) から Qt の痕跡をすべて削除します。
  2. http://qt.nokia.com/downloads/から Qt ライブラリを再インストールします(上部にある SDK ではなくライブラリ)。
  3. 「brew update」で自作を更新する
  4. 醸造インストールqt

さらに、Qt SDK と XCode 4.3 をインストールしましたが、同僚がこれらのものをインストールしておらず、私と同じ問題を抱えていなかったため、これで修正されたとは思いません。

これは MacPorts とは何の関係もない可能性がありますが、私の古い Qt 4.7 のインストールと関係がある可能性があります。現在、Qt 4.8 を実行しています。

お騒がせしてすみません!たぶん、この情報は他の誰かを助けるでしょう。

于 2012-04-11T18:26:52.567 に答える
0

問題 187「PhantomJS が ISO8601 日付形式で壊れているようです」によると、このバグは v1.8 で修正される予定のようです。

http://code.google.com/p/phantomjs/issues/detail?id=187

当面の間、そのバグ レポートからの回避策は、日付に「T00:00:00Z」を追加することです。

于 2012-10-11T22:46:20.477 に答える
0

このエラーが発生しました.QtWebKitに関連していると思いますが、wicked_pdfを使用している場合. OS 間で wkhtmltopdf と qtwebkit への依存関係を調べるのは困難でした (私は開発環境で OSX を実行し、時には開発環境で Ubuntu を実行し、Heroku にデプロイしますが、他のプラットフォームにもすぐにデプロイする可能性があります)、パントして回避策も使用しました。moment.js を使用して Date オブジェクトを新しく作成したところ、すべてが機能しました。内部を調べてどのように機能するかを確認する時間はありませんでしたが、ブラウザのサポートをテストすることで、moment.js が "YYYY-MM-DD" を日付オブジェクトに変換するのが賢明だと思います。

コードが実行されている OS を気にせず、moment.js ライブラリを含める余裕がある場合、これは実際にはかなり良い回避策です。これにより、どの WebKit が実行されているかを気にする必要がなくなります。

于 2014-12-16T18:20:29.397 に答える