2011-07-05 71 views
1

我正在嘗試使用mongo作爲db和php作爲語言來設置一個簡單的博客系統。我不知道如何將日期或時間戳放入mongo中(我想我需要一個時間戳,以便我可以按照發布的降序將帖子拉回)。我已經在下面發佈了我現在寫作的一個存根(stub) - 這是創建一個PHP日期並堅持 - 但這似乎是以String的形式出現的。這是我在Oracle中習慣處理的東西,它使我在mongo中感到驚訝。建議?使用PHP在MongoDB中插入和回顧日期和時間戳

 try{ 
     date_default_timezone_set('America/New_York'); 
     //$dt = date('j-m-y h-i-s'); 
     $conn = new Mongo(); // connect 
     $db = $conn->selectDB("blog"); 
     $collection = $db->items; 
     $item =array(
      'title' => $_POST['title'], 
      'txt' => $_POST['txt'], 
      'labels' => $_POST['labels'], 
      'user' => $_POST['user'], 
      'dt' => date('j-m-y h-i-s') 
     ); 
     $collection->insert($item); 

     /// disconnect from server 
     $conn->close(); 
    } catch (MongoConnectionException $e) { 
     echo '<p>Couldn\'t connect to mongodb, is the "mongo" process running?</p>'; 
     exit(); 
    } 
+0

試試這個:http://www.php.net/manual/en/class.mongodate.php – Shekhar

回答

3

在我看來,最合適的方法是使用MongoDate。因此,將其插入,你需要做的:

$collection->insert(array(
    'time' => new MongoDate() 
)); 

這將插入當前日期(或新蒙戈2.6你可以做到這一點this way)。

或者

$collection->insert(array(
    'time' => new MongoDate(strtotime("2010-01-15 00:00:00")); 
)); 

將插入一個特定的日期。

要檢索您的日期,你可以使用date('Y-M-d h:i:s', $yourDate->sec);

+1

只是爲了未來的讀者,在MongoDate()對象是指到舊的(Nov'16)和不受支持的Mongo PHP擴展;新的驅動程序,即MongoDB,也定義了新的類,如UTCDateTime(http://php.net/manual/en/class.mongodb-bson-utcdatetime.php) –

+0

@PierpaoloCira謝謝。您也可以編輯我的答案或編寫自己的答案。 –

+0

對不起,但我的名聲不允許我編輯...... :( –