【问题标题】:DateTime objects from MongoDB have unreadable characters in Object Definition来自 MongoDB 的 DateTime 对象在对象定义中具有不可读的字符
【发布时间】:2013-05-25 10:18:32
【问题描述】:

每当我从 MongoDB 集合中获取数据,并且其中一个字段具有 DateTime 对象时,我都会得到:

object(DateTime�����w   )[359]
  public 'date' => string '2012-12-12 00:00:00' (length=19)
  public 'timezone_type' => int 3
  public 'timezone' => string 'America/Caracas' (length=15)

当我在浏览器中使用带有 UTF-8 字符集的 var_dump 输出时,当使用 print_r、xdebug_var_dump、访问公共方法时,我得到了这一点......

如果我尝试输出这些公共属性之一的数据,我会收到此错误:

(文件>)中的参数中的 UTF-8 序列无效

我正在使用 MongoDB 2.4.3。

有什么建议吗?

编辑 1: 我认为这是与 Symfony 相关的问题,但我使用的是 Mongo Shell,当我插入新条目时,我遇到了同样的问题,所以问题不是来自 Symfony ,那么它就无关紧要了,除非它与 DB 模式是由 Symfony 创建的事实有关。

【问题讨论】:

  • 在shell中,你是如何插入新条目的?
  • db.collection.insert({new Date('12 Dec, 2012')})
  • 那不是合法的 json。你的意思是 {keyname:new Date(etc)} 吗?

标签: mongodb utf-8 character-encoding


【解决方案1】:

真正的问题是 PHP 5.4 的 Mongo 扩展安装有缺陷。我最终使用了Liip.ch's amazing PHP package for OS X,为我替换了 MAMP。

【讨论】:

    猜你喜欢
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 2021-11-20
    • 2012-05-16
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多