进展:
我从一个系列中退出了日期。
示例格式:Fri Oct 05 14:59:31 +0000 2012
我能够改变它的格式。
使用代码:
$cur=$col->find(array(),array("created_at"=>1,"_id"=>0));
// created_at = contains Date value
$cur_all=$col->find();
while($doc=$cur_all->getNext())
{
$doc2=$cur->getNext();
$pieces = implode(" ", $doc2);
//converted the array to string with space delimiting
if($pieces!=NULL)
{
$date1 = date_create_from_format("D M d G:i:s +O Y", $pieces);
echo date_format ( $date1 , 'Y-m-d G:i:s' );
//This is the format i would like to update in mongodb..
$filter = array('_id'=>new MongoId($doc['_id']));
$update = array('$set'=>array('created_at'=> newMongoDate($date2)));
$col->update($filter,$update);
}
}
问题:
在何处创建日期对象,以便可以按预期格式将其更新为集合中的文档? (格式:Y-m-d G:i:s)
P.S:我在Stackoverflow(以及其他地方)上做过很多研究,但我无法得出任何结论。这就是为什么这个问题。如果有任何澄清,请告诉我答案 0 :(得分:1)
嗯,即使你已经很好地解释了你的背景你的实际问题:
在何处创建日期对象,以便可以按预期格式将其更新为集合中的文档? (格式:Y-m-d G:i:s)
有点混乱。
只有在使用ISODate
:http://en.wikipedia.org/wiki/ISO_8601(在PHP中称为MongoDate
)时,MongoDB才会始终以一种格式和一种格式保存日期,最好不要乱用这个现状。
所以我建议你只使用格式Y-m-d G:i:s
作为显示,即:
$date1 = new MongoDate();
var_dump(date('Y-m-d G:i:s', $date1->sec));
您使用原始$date1
对象实际保存到数据库。
当然,如果您要以指定的格式创建日期,这会发生变化,但这里有一段代码示例:
$date1 = new MongoDate();
$date2 = new MongoDate(strtotime(date ( 'Y-m-d G:i:s', $date1->sec )));
var_dump(date('Y-m-d G:i:s', $date2->sec));
您可以使用$date2
作为日期保存到由您想要的特定格式组成的MongoDB中。
答案 1 :(得分:0)
查看http://php.net/manual/en/class.mongodate.php
您的代码应使用unix时间戳
创建日期$date2 = ('23rd April 2013');
$update = array('$set'=>array(
'created_at'=> new MongoDate(strtotime($date2))
));