文字

The MongoDate class

(PECL mongo >=0.8.1)

简介

Represent date objects for the database. This class should be used to save dates to the database and to query for dates. For example:

Example #1 Storing dates with MongoDate

<?php

// save a date to the database
$collection -> save (array( "ts"  => new  MongoDate ()));

$start  = new  MongoDate ( strtotime ( "2010-01-15 00:00:00" ));
$end  = new  MongoDate ( strtotime ( "2010-01-30 00:00:00" ));

// find dates between 1/15/2010 and 1/30/2010
$collection -> find (array( "ts"  => array( '$gt'  =>  $start '$lte'  =>  $end )));

?>

MongoDB stores dates as milliseconds past the epoch. This means that dates do not contain timezone information. Timezones must be stored in a separate field if needed. Second, this means that any precision beyond milliseconds will be lost when the document is sent to/from the database.

类摘要

MongoDate {
public int $sec ;
public int $usec ;
public __construct ([ int $sec = time() [, int $usec = 0 ]] )
public DateTime toDateTime ( void )
public string __toString ( void )
}

Table of Contents

  • MongoDate::__construct — 创建一个新的日期。
  • MongoDate::toDateTime — Returns a DateTime object representing this date
  • MongoDate::__toString — 返回该日期的字符串形式的表达

用户评论:

[#1] richard at securebucket dot com [2012-02-17 15:32:28]

I wanted a way to check the age of a record.  This code will calculate the time between the creation date of the record, and return the seconds.  I use it for caching pages similar to the max-age header in a browser.  If the record is older, than my limit it deletes itself.

<?php
function microtime_diff$start$end=NULL ) { 
        if( !
$end ) { 
            
$endmicrotime(); 
        } 
        list(
$start_usec$start_sec) = explode(" "$start); 
        list(
$end_usec$end_sec) = explode(" "$end); 
        
$diff_secintval($end_sec) - intval($start_sec); 
        
$diff_usecfloatval($end_usec) - floatval($start_usec); 
        return 
floatval$diff_sec ) + $diff_usec


microtime_diff($cache['stamp']->sec);
?>

[#2] jhonnydcano at yahoo dot com [2010-03-15 11:43:50]

For showing a human readable MongoDate, you can use something like this:

<?php
date
('Y-M-d h:i:s'$yourDate->sec);
?>

上一篇: 下一篇: