2009-08-25 5 views
9

Ich bin auf der Suche nach einer Bibliothek (Open Source) wie Joda-Time in der Java-Welt. Gibt es eine solche Bibliothek?Datum und Uhrzeit Helfer für PHP (wie Joda-Time in Java)

Joda-Time ist sehr hilfreich, um Datum und Uhrzeit zu berechnen. Ich kann Tage, Wochen, Monat, Jahr addieren und kann Datum und Zeit leicht umwandeln.

Ich wünschte, es gibt eine Bibliothek wie Joda-Time für PHP.

Edit: Ich brauche einige Funktionen, die in Joda-Time wie daysBetween erhältlich von PHP selbst, monthsBetween und weeksBetween ... Einige Funktionen über Add- und subtrahieren Datum verfügbar ist (Anzahl der Tage zwischen 2 Datum berechnen).

Antwort

0

Ich kenne eine Komponente der Zend Framework: Zend_Date. Es funktioniert gut für diesen Job.

Ich bin mir nicht sicher, aber Sie können es ohne das gesamte Framework verwenden.

Zend Date

0

Ich bin mit Joda nicht vertraut, aber er nahm sie einen Blick in DateTime? Es macht all die Dinge (und einige mehr), die du erwähnt hast.

0

strtotime und date kann manchmal Wunder wirken, besonders wenn Sie mit Daten> = 1.970 (dh, die als UNIX Zeitpunkt codiert werden kann) arbeiten.

Wenn Sie eine neuere Version von PHP verwenden, könnte die Klasse DateTime (hinzugefügt in PHP 5.2; aber mehrere Methoden wurden in PHP 5.3 hinzugefügt) hilfreich sein - andere Date and Time Klassen könnten ebenfalls helfen.

+0

Dank, ich wusste nur etwa strtotime.:) strtotime ist nett, aber es gibt keine Funktionen wie, daysBetween, weeksBetween, monatesBetween. Joda habe alles was ich brauche um mit Date zu spielen. – nightingale2k1

-1

Es ist keine externe Bibliothek erforderlich. PHP ist dazu schon mehr als fähig.

<?php 
/** These examples work with the current time **/ 
echo strtotime("now"), "\n"; 
echo strtotime("10 September 2000"), "\n"; 
echo strtotime("+1 day"), "\n"; 
echo strtotime("+1 week"), "\n"; 
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n"; 
echo strtotime("next Thursday"), "\n"; 
echo strtotime("last Monday"), "\n"; 

/** This is a made up time **/ 
$lessMonth = strtotime("06/19/1986 3:00PM") 
$lessMonth = strtotime("-1 month", $lessMonth); 

echo $lessMonth, "\n"; 
echo gmdate('c', $lessMonth); 

/** 86 400 seconds in a day */ 
$daysBetween = (strtotime("now") - $lessMonth)/86400 
?> 
+16

Der Vergleich der Standard-PHP-Datumsfunktion mit Jodatime scheint darauf hinzudeuten, dass Sie nicht viel Zeit mit Jodatime verbracht haben ... ;-) – Guillaume

+2

Das zeigt genau, was Sie nicht tun sollten! Harte Codier-Sekunden sind absolut falsch. Dies berücksichtigt nicht: Schaltjahre, Sommerzeit, Zeitzonen, sogar Schaltsekunden! Tu das nicht. – MikeWallaceDev

0

Sie können diese Bibliothek für PHP Datum und Zeit versuchen http://nuclearscripts.com/php/scripts-and-programs/date-and-time/php-date-library.html

von dort

Die PHP-Date Library Zitiert ist eine Sammlung von professionellen nativen PHP-Funktionen zu Arbeit mit Terminen. Es erfordert keine PHP-Erweiterungen. Diese Bibliothek enthält die meisten nützlichen Funktionen zum Arbeiten mit Daten. Es enthält Funktionen zu validieren Sie das Datum, shift date von gegeben Anzahl der Tage, berechnen Sie die Differenz zwischen zwei Daten, berechnen Woche Nummer für ein bestimmtes Datum und vieles mehr. Es behandelt Schaltjahre richtig und ist ISO-kompatibel. Professional Programmierer verbrachte 3+ Tage zu studieren das Thema, Code der Bibliothek, schreiben Handbuch und legte alles hier.

Ich habe es nicht persönlich getestet.