删除MacPorts后,新日期(“YYYY-MM-DD”)在Qt WebKit中停止工作

时间:2012-04-11 01:30:09

标签: qt webkit macports homebrew phantomjs

在我的OS X 10.7.3(Lion)笔记本电脑上,我无法使用Date构造函数解析Qt WebKit的JavaScript日期字符串。使用jasmine-headless-webkit或phantomJS,所有调用如:

new Date("2012-04-10")

始终返回

"Invalid Date"

而不是有效的Date对象。几个星期前,一切都工作正常,我已经在六台计算机上检查了这个设置类似的设置,无法在其他任何地方重现这个问题。

当我决定清除我原本未使用过的MacPorts安装时,我相当肯定问题已经开始了(我很久以前就已经切换到Homebrew并正在做一些清洁工作)。我怀疑有一个动态链接库已从我的系统中删除,Qt使用它来进行日期解析。

有谁知道这个日期解析库可能被调用了什么?任何想法,如果我可以用Homebrew安装它或以某种方式手动修复缺少的依赖?

我尝试重新安装Qt和许多其他库,但没有解决问题。

4 个答案:

答案 0 :(得分:2)

我没有Mac,但考虑到Windows的类似情况,我会使用一个程序来报告有关应用程序依赖性的信息,如Dependency Walker。快速搜索建议this program可能有助于Mac世界。

答案 1 :(得分:1)

好的,我用jasmine-headless-webkit解决了日期解析的问题。不幸的是,我对它不够科学,所以我不确定修复它的原因。可能是以下部分或全部过程:

  1. 从/ Library / Frameworks / Qt *和homebrew(/ usr / local / Qt *和/ usr / local / Cellar / qt *)中删除所有Qt痕迹
  2. http://qt.nokia.com/downloads/重新安装Qt库(库,而不是顶部的SDK)
  3. 通过“brew update”更新自制软件
  4. brew install qt
  5. 另外我安装了Qt SDK和XCode 4.3,但我认为这不会修复它,因为我的同事没有安装这些东西而且没有和我一样的问题。

    这可能与MacPorts无关,但可能与我的旧版Qt 4.7安装有关。我现在正在运行Qt 4.8。

    抱歉所有的噪音!也许这些信息可以帮助其他人。

答案 2 :(得分:0)

根据问题187“PhantomJS似乎打破了ISO8601日期格式的一个”,看起来这个错误将在v1.8中得到修复“:

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

与此同时,该错误报告的解决方法是将“T00:00:00Z”附加到您的日期。

答案 3 :(得分:0)

我有这个错误,我认为与QtWebKit有关,但在使用wicked_pdf时。很难在OS上运行wkhtmltopdf和qtwebkit的依赖(我在开发中运行OSX,有时在开发中使用Ubuntu,我们部署到Heroku但很快就可以部署到其他平台),所以我也尝试使用了解决方法。我使用moment.js来创建一个Date对象,一切正常。我没有时间去看看引擎盖,看看它是如何工作的,但我的猜测就是那个时刻。我很聪明地转向" YYYY-MM-DD"通过测试浏览器支持来进入日期对象。

这实际上是一个非常好的解决方法,当你不想关心你的代码运行的操作系统并且能够包含moment.js lib时。这样您就不必关心正在运行的WebKit。