我正在尝试建立一个简单的博客系统,使用mongo作为db和php作为语言。我不确定如何将日期或时间戳放入mongo(我想我需要一个时间戳,以便我可以按照发布的降序将帖子拉回来)。我已经在下面发布了我现在写的一个存根 - 这是创建一个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();
}
答案 0 :(得分:3)
在我看来,最合适的方法是使用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);
答案 1 :(得分:0)
您可以使用以下代码在mongo db中插入日期。在mongo db中将当前日期作为$ utcdatetime插入。
/ ********************构造函数************************* ********* /
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk0p2 31G 7.9G 21G 28% /
在检索数据时(以毫秒为单位),您在变量$ utcdatetime中使用以下代码 / ********************以UTC检索时间************************* ********* /
$orig_date = new DateTime('2016-06-27 13:03:33');
$orig_date=$orig_date->getTimestamp();
$utcdatetime = new MongoDB\BSON\UTCDateTime($orig_date*1000);
/ ********************转换时间为当地时区******************* / >
$datetime = $utcdatetime->toDateTime();
$time=$datetime->format(DATE_RSS);