0

進行状況 :
1. コレクションから日付を削除しました。Example format : Fri Oct 05 14:59:31 +0000 2012
2. フォーマットを変更できました。

使用コード:

         $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);
        }
}

質問 :

期待される形式でコレクション内のドキュメントに更新できるように、日付オブジェクトを作成する場所は? (フォーマット: Ymd G:i:s )

PS : Stackoverflow (および他の場所) について多くの調査を行いましたが、結論を出すことができませんでした。それがこの質問の理由です。説明があれば教えてください

4

2 に答える 2

1

うーん、あなたはあなたの背景をよく説明しましたが、あなたの実際の質問:

期待される形式でコレクション内のドキュメントに更新できるように、日付オブジェクトをどこに作成しますか?(形式:Ymd G:i:s)

少し紛らわしいです。

ISODateMongoDBは、http ://en.wikipedia.org/wiki/ISO_8601(別名PHP)を使用する場合にのみ、常に1つの形式と1つの形式で日付を保存しますMongoDate。この現状を台無しにしないのがおそらく最善です。

したがって、この形式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に保存する日付として使用できます。

于 2013-03-15T09:05:29.873 に答える
0

http://php.net/manual/en/class.mongodate.phpを見てください

コードは、UNIXタイムスタンプを使用して日付を作成する必要があります

$date2 = ('23rd April 2013');
$update = array('$set'=>array(
                        'created_at'=> new MongoDate(strtotime($date2))
          ));

http://www.php.net/manual/en/function.strtotime.php

于 2013-03-15T09:07:31.423 に答える