簡體   English   中英

日期轉換和使用PHP更新mongodb文檔

[英]Date conversion and updating mongodb document using PHP

進度:
我從一個收藏夾中取出日期。 范例格式:2012年10月5日星期五14:59:31 +0000
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(以及其他地方)進行了大量研究,但我無法得出任何結論。 這就是為什么這個問題。 讓我知道是否有任何澄清

嗯,盡管您已經很好地解釋了背景,但您還是遇到了實際問題:

在何處創建日期對象,以便可以按預期格式將其更新為集合中的文檔? (格式:Ymd G:i:s)

有點混亂。

僅當使用ISODate時,MongoDB才會始終以一種格式和一種格式保存日期: http : //en.wikipedia.org/wiki/ISO_8601 (在PHP中也稱為MongoDate ),最好不要MongoDate這種現狀。

因此,我建議您僅將Ymd 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的日期,該日期由所需的特定格式組成。

看看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/zh/function.strtotime.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM