Comment retourner le format de date ISO en PHP pour MongoDB?
Je veux stocker la date actuelle générée à partir de PHP dans MongoDB collection comme un ISO date de formiate.
ISODate("2012-11-02T08:40:12.569Z")
Cependant, je ne suis pas en mesure de générer ce Genre de date en php qui sera stocké dans MongoDB comme un ISODate format.
C'est ce que j'ai fait.
$d = new MongoDate(time());
echo $d;
et c'est la sortie de quelque chose comme
0.00000000 1353305590
qui n'est pas le format que j'ai besoin. Comment faire cela?
source d'informationauteur user1518659
Vous devez vous connecter pour publier un commentaire.
Vous pouvez exécuter la
__toString
fonction, ou d'utiliser lesec
champ__toString
sera de retour un timestamp dans usecs, que vous pouvez transmettre àdate()
après la séparation de l'secondes de millisecondes - lire ici: http://us1.php.net/manual/en/mongodate.tostring.phpOU, personnellement, je préfère avoir mongodb ne renvoyer que les secondes, qui peut être branché directement dans
date()
- lire ici: http://php.net/manual/en/class.mongodate.phpAussi, si vous êtes de la génération d'un MongoDate() pour l'instant, vous n'avez pas besoin de spécifier le temps();
Afin de retourner un isodate, vous avez besoin pour ce faire:
...
EDIT: Pour enregistrer votre date ISO, vous devez effectuer les opérations suivantes:
Pour plus de clarté, prenons la suite de cas d'utilisation:
Vous avez besoin de convertir une chaîne de caractères dans le simplifié étendue format ISO 8601 (par exemple, retourné par du Javascript
Date.prototype.toISOString()
) vers et à partir de PHPMongoDate
objet, tout en préservant un maximum de précision lors de la conversion.Dans ce format, la chaîne est toujours de 24 caractères:
YYYY-MM-DDTHH:mm:ss.sssZ
. Le fuseau horaire est toujours à zéro décalage UTC, comme indiqué par le suffixeZ
.De garder millisecondes, nous aurons à tirer parti de PHP
DateTime
objet.De chaîne à
MongoDate
:Méthode 1 (à l'aide de
date_create_from_format
):Méthode 2 (à l'aide de
strtotime
):De
MongoDate
à chaîne:Espère que cette aide.