La classe MongoDate

(PECL mongo >=0.8.1)

Introduction

Représente un objet date pour la base. Cette classe peut être utilisée pour sauvegarder des dates dans la base de données mais aussi pour faire des requêtes à base de dates. Par exemple :

Exemple #1 Stockage des dates avec MongoDate

<?php

// Sauvegarde une date dans la base de données
$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"));

// Trouve les dates entre 1/15/2010 et 1/30/2010
$collection->find(array("ts" => array('$gt' => $start'$lte' => $end)));

?>

MongoDB stocke les dates en millisecondes après epoch. Ceci signifie que les dates ne contiennent pas d'informations sur les fuseaux horaires. Les fuseaux doivent être stockés dans un champ séparé si besoin. Aussi, toute précision au delà de la milliseconde sera perdue lorsque le document est envoyé dans la base ou restauré de celle-ci.

Synopsis de la classe

MongoDate {
/* Champs */
public int $sec ;
public int $usec ;
/* Méthodes */
public __construct ([ int $sec = time() [, int $usec = 0 ]] )
public string __toString ( void )
}

Sommaire

add a note add a note

User Contributed Notes 2 notes

up
0
richard at securebucket dot com
2 years ago
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 ) {
           
$end= microtime();
        }
        list(
$start_usec, $start_sec) = explode(" ", $start);
        list(
$end_usec, $end_sec) = explode(" ", $end);
       
$diff_sec= intval($end_sec) - intval($start_sec);
       
$diff_usec= floatval($end_usec) - floatval($start_usec);
        return
floatval( $diff_sec ) + $diff_usec;
}

microtime_diff($cache['stamp']->sec);
?>
up
0
jhonnydcano at yahoo dot com
4 years ago
For showing a human readable MongoDate, you can use something like this:

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