我在数据库中执行一些查询后得到字符串,如
objectString = 'O:8:"stdClass":1:{s:5:"$date";O:8:"stdClass":1:{s:11:"$numberLong";s:13:"1546297200000";}}
我想从stdClass字符串中获取$ numberLong值。我试过了
var dateObj = new Date(objectString.$date.$numberLong - 1000);
它会在此行抛出错误消息
"未捕获的TypeError:无法读取属性' $ numberLong'未定义的 在getDateStringObject"
请帮助!!!
答案 0 :(得分:1)
这看起来像序列化的stdObject
。如果您在任何时候从PHP获得此值,我建议unserializing将其返回给javascript。
如果操作正确,您将能够按如下方式访问日期:
var dateObj = new Date(object.date.numberLong - 1000);
如果您不能使用PHP来反序列化该对象,那么您可以使用正则表达式来匹配该值,如下所示:
var objectString = 'O:8:"stdClass":1:{s:5:"$date";O:8:"stdClass":1:{s:11:"$numberLong";s:13:"1546297200000";}}'
var pattern = /("\$numberLong")(.+)("\d+")/g
var match = pattern.exec(objectString);
console.log(match[3]);

答案 1 :(得分:0)
objectString
看起来像一个序列化对象(参见PHP serialize)。
您需要unserialize将其放入PHP对象中才能使用它的属性(如$numberLong
)
你可以看一下How to use php serialize() and unserialize()的一些简单解释。