2009-08-25 6 views
9

Sto cercando una libreria (open source) come Joda-Time nel mondo Java. C'è qualche biblioteca come quella?Helper per data e ora per PHP (come Joda-Time in Java)

Joda-Time è molto utile per calcolare la data e l'ora. Posso aggiungere giorni, settimane, mesi, anni e anche convertire facilmente data e ora.

Vorrei che ci fosse una libreria come Joda-Time per PHP.

Edit: ho bisogno di alcune funzioni che disponibile in Joda-Time come daysBetween (per calcolare il numero di giorni tra due date), monthsBetween e weeksBetween ... Alcune funzioni su Add e la data sottrarre è disponibile da PHP stesso.

risposta

0

Conosco un componente dello Zend Framework: Zend_Date. Funziona bene per questo lavoro.

Non sono sicuro, ma è possibile utilizzarlo senza l'intero Framework.

Zend Date

0

Non ho familiarità con Joda, ma avete dato un'occhiata in DateTime? Fa tutte le cose (e altre ancora) che hai menzionato.

0

strtotime e date volte può fare miracoli, soprattutto se si sta lavorando con date> = 1.970 (vale a dire, che può essere codificato come un timestamp UNIX).

Se si utilizza una versione abbastanza recente di PHP, la classe DateTime (aggiunta in PHP 5.2, ma diversi metodi sono stati aggiunti in PHP 5.3) potrebbe essere utile anche - altre classi Date and Time potrebbero essere utili.

+0

grazie, sapevo solo su strtotime.:) strtotime è bello ma non ci sono funzioni come, giorni Tra, settimane Tra, mesi Tra. Joda ha tutto ciò di cui ho bisogno per giocare con la data. – nightingale2k1

-1

Non è necessaria la libreria esterna. PHP è più che capace di questo già.

<?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

La comparazione della funzione di data PHP standard con Jodatime sembra indicare che non hai trascorso molto tempo con Jodatime ... ;-) – Guillaume

+2

Questo mostra esattamente cosa non dovresti fare! I secondi di codifica dura sono assolutamente sbagliati. Questo non tiene in considerazione: anni bisestili, ora legale, fusi orari, persino secondi bisestili! Non farlo. – MikeWallaceDev

0

Si può provare questa libreria per PHP Data e ora http://nuclearscripts.com/php/scripts-and-programs/date-and-time/php-date-library.html

Citando da Data Biblioteca lì

Il PHP è la raccolta di funzioni professionali PHP native per lavoro con date. Non richiede eventuali estensioni PHP. Questa libreria include la maggior parte delle funzioni utili per funzionare con le date . Include funzioni per convalidare la data, data di spostamento data quantità data, calcolare la differenza tra due date, calcolare il numero della settimana per data data e molto altro. Gestisce correttamente gli anni bisestili ed è compatibile con ISO . Il programmatore professionale ha trascorso 3+ giorni a studiare l'oggetto, codificare la libreria, scrivere il manuale e mettere tutto qui.

Non l'ho provato personalmente.