php - 使用 PHP 在 mongodb 中插入和检索日期和时间戳

标签 php mongodb

我正在尝试建立一个简单的博客系统,使用 mongo 作为数据库,使用 php 作为语言。我不确定如何将日期或时间戳放入 mongo(我想我需要一个时间戳,以便我可以按发布的降序顺序将帖子拉回)。我已经在下面发布了我现在作为 stub 编写的内容 - 它正在创建一个 PHP 日期并将其粘贴 - 但它似乎作为一个字符串出现。这是我在 Oracle 中习惯处理的事情,以至于在 mongo 中让我感到惊讶。有什么建议吗?

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

最佳答案

在我看来,最合适的方式是使用MongoDate .所以要插入它,你需要做:

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

这将插入一个当前日期(或者在新的 Mongo 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);


最新的 PHP-MONGO 驱动程序更新

使用BSON UTCDateTime输入如下:

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

关于php - 使用 PHP 在 mongodb 中插入和检索日期和时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6590119/

相关文章:

php - 试图将变量传递给 Wordpress 函数

php - 如何选择具有多个标签的项目

php - 在数据库中保存和编辑数组的最佳方法是什么(json、序列化或文本)

MongoDB 的 NumberLong 只有 54 位签名?

php - 获取错误对象类 mysqli_result 无法转换为字符串

php - 通过 php 导入 txt 分号分隔文件并转换为新格式

javascript - MongoError : Unknown modifier $pushAll when I try to push an userId into an Array field in Node. js

caching - 将数据从 Redis 持久化到 MongoDB 以用于数据存储

php - 如何将 maxPoolSize 与 mongodb-php 驱动程序版本 1.2.0 一起使用

java - 如何使用java从嵌入在mongodb数组中的内部文档中检索数据