DateTime mit MikrosekundenPhp

PHP-Programmierer chatten hier
Anonymous
 DateTime mit Mikrosekunden

Post by Anonymous »

In meinem Code verwende ich DateTime-Objekte, um Datumsangaben zu manipulieren und sie dann in Zeitstempel umzuwandeln, um sie in einigen JSON-Dateien zu speichern.
Aus bestimmten Gründen möchte ich dasselbe wie DateTime (oder etwas Ähnliches) haben, aber mit Mikrosekundengenauigkeit (die ich beim Einfügen in die JSON-Dateien in Float umwandeln würde).
Gibt es ein PHP-Objekt, das so ist? DateTime, kann aber auch Mikrosekunden verarbeiten?
Das Ziel besteht darin, Mikrozeitens mit Objekten manipulieren zu können.
In der date()-Dokumentation gibt es etwas, das darauf hinweist, dass DateTime mit Mikrosekunden erstellt werden kann, aber ich konnte nicht finden, wie.

u Mikrosekunden (hinzugefügt in PHP 5.2.2). Beachten Sie, dass date() immer
000000 generiert, da es einen ganzzahligen Parameter annimmt, wohingegen
DateTime::format() Mikrosekunden unterstützt, wenn DateTime
mit Mikrosekunden erstellt wurde.

Ich habe versucht, den Zeitstempel eines DateTime-Objekts mit einem Gleitkommawert festzulegen (

Code: Select all

microtime(true)
), aber es funktioniert nicht (ich glaube, es konvertiert den Zeitstempel in einen int, was zum Verlust der Mikrosekunden führt).
So habe ich es versucht

Code: Select all

$dt = new DateTime();
$dt->setTimestamp(3.4); // I replaced 3.4 by microtime(true), this is just to give an example
var_dump($dt);
var_dump($dt->format('u'));
Die .4 wird nicht berücksichtigt, wie Sie hier sehen können (obwohl wir das u-Format verwenden können, das den Mikrosekunden entspricht).

Code: Select all

object(DateTime)[1]
public 'date' => string '1970-01-01 01:00:03' (length=19)
public 'timezone_type' => int 3
public 'timezone' => string 'Europe/Berlin' (length=13)

string '000000' (length=6)
Ich habe diesen Code gesehen, der es ermöglicht, Mikrosekunden zu einer DateTime hinzuzufügen, aber ich müsste viele Änderungen an der Mikrozeit vornehmen, bevor ich die DateTime erstellen kann. Da ich dies häufig verwenden werde, möchte ich so wenig Änderungen wie möglich an der Mikrozeit vornehmen, bevor ich das „Mikrozeitobjekt“ erhalte.

Code: Select all

$d = new DateTime("15-07-2014 18:30:00.111111");

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post