Composant Date

Un composant de manipulation de date
Cette documentation est disponible en english | français

Informations

Version : 0.5
Author : mailto:west_REMOVEleo@yahoo.com?subject=classDate
Licence : GPL
Updated : Nov 2001

Installation

Telecharger date-0.5.zip
Je vous conseille de dezipper Date/date.php dans un repertoire dédié à vos librairies PHP partagées,
par exemple /usr/lib/php ou /home/www/lib. C'est notamment obligatoire si vous
utilisez d'autres composants qui utilisent celui-ci.

Documentation

Table des matières

Constructeurs

Date( [ int timestamp] )

Instancie une date a partir d'un timestamp Unix.
$date = new Date();
Le parametre optionnel timestamp initialise l'objet. Il est exprimé en nombres de secondes écoulé depuis le 1/1/1970.

Par defaut, l'objet est initialisé au timestamp courant. Voir fonctions PHP code

fromDatetime( string datetime )

Construit un objet date a partir d'une chaine au format iso-8901.

$date = Date::fromDatetime( "2001-08-01T12:30:59" )

datetime est une chaine au format ISO comportant les parties date et heure
Retour un objet Date si ok, NULL si format non reconnu.

Le format ISO est YYYY MM DD "T" hh mm ss [TZ]
Le code de timezone optionnel TZ est ignoré dans cette version.
Accepte plusieurs variantes avec ou sans séparateur:

20010801123059 => OK
20010801T123059Z => OK
2001-08-01T12:30:59 => OK
2001-08-01 => error
2001-08-01T01:30 => error
2001-08-01T1:30:59 => error

Positionneurs (Setters)

Pour tous les setters, les débordements sont gérés automatiquement, par exemple si on effectue Date[01/01/2000].setDay(33), on obtiendra Date[02/02/2000]

setTimestamp( int ts )

Definit la date a partir d'un timestamp Unix.

setHours( int hours )

Positionne le champ heures.

setMinutes( int minutes )

Positionne le champ minutes.

setSeconds( int seconds )

Positionne le champ secondes.

setYear( int year )

Positionne le champ année

setMonth( int month )

Positionne le champ mois

setDay( int day )

Positionne le champ jour du mois

setWeekDay( int wday )

Positionne le jour de la semaine. wday est un nombre compris entre 0 (dimanche) et 6 (samedi).
Si setDay() et setWeekday() sont invoqués sur un meme objet, c'est le dernier appel qui "a raison".

Getters

getTimestamp()

Renvoie le timestamp Unix ( nombre de secondes écoulées depuis le 1/1/1970 )

getYear()

Renvoie le champ année

getMonth()

Renvoie le champ mois

getDay()

Renvoie le champ jour du mois sous la forme d'un entier compris entre 1 et 31.

getWeekDay()

Renvoie le jour de la semaine sous la forme d'un entier compris entre 0 et 6.

getYearDay()

Renvoie le jour de l'année (1-366)

getHours()

getMinutes()

getSeconds()

Renvoient respectivement les champs heures, minutes, secondes.

getSecondsInDay

Renvoie le nombre de secondes écoulées depuis le debut de la journée à 00:00:00

daysInMonth()

Renvoie le nombre de jours total du mois.

Addition et soustraction

addYears( int n )

addMonths( int n )

addDays( int n)

addHours( int n)

addMinutes( int n)

addSeconds( int n)

Ajoutent respectivement n années, mois, jours, heures, minutes, secondes.
n peut etre négatif pour retrancher ce nombre.
Les débordements sont gérés automatiquement: Si on ajoute 2 jours a Date[ 30/12/2000 ], on obtient Date[ 01/01/2001 ]

Comparateurs

compareTo( Date otherdate )

Compare cette date avec otherDate.
Retour un nombre de secondes representant la différence thisDate - otherDate

if( $date1->compareTo( $date2 ) == 0 ) echo "date1 and date2 are equals";

daysTo( Date otherdate )

Renvoie le nombre de jour compris entre cette date et la date fournie en parametre.
Renvoie un nombre negatif si la date otherdate est antérieure.
otherdate un objet Date

Formattage & Affichage

Format( string format, int timestamp )

Cette méthode renvoie la date timestamp formattée selon le format indiqué
Methode statique, conçue pour formatter plusieurs dates sans devoir instancier un objet Date a chaque fois:
$today = Date::Format( "%a %d %m %Y", time() );
$yesterday = Date::Format( "%a %d %m %Y", time() - SEC_DAY );

toString( string format )

Renvoie la date formattée selon le format donné en paramètres
$heure = $date->toString( "%H heures %M minutes %S secondes" );
voir § Constantes pour des formats prédéfinis

Exemples

Section TODO

Constantes

Les constantes globales suivantes sont définies,
à utiliser par exemple pour les methodes setWeekDay (WDAY_*) , toString (FMT_*).

Symbole Description Valeur
WDAY_SUNDAY dimanche 0
WDAY_MONDAY lundi 1
WDAY_TUESDAY mardi 2
WDAY_WENESDAY mercredi 3
WDAY_THURSDAY jeudi 4
WDAY_FRIDAY vendredi 5
WDAY_SATURDAY samedi 6
SEC_MINUTE nombre de secondes dans 1 minute 60
SEC_HOUR nombre de secondes dans 1 heure 3600
SEC_DAY nombre de secondes dans 1 jour 86400
FMT_DATEISO format d'une date iso8601 "%Y%m%dT%H%M%S"
FMT_DATELDAP format d'une date LDAP "%Y%m%d%H%M%SZ"
FMT_DATERFC822 format d'une date RFC 822 (Mime) "%a, %d %b %Y %H:%M:%S"
FMT_DATEFR date au format français (jj/mm/aaaa) "%d/%m/%Y"
FMT_DATEEN date au format US (mm/jj/aaaa) "%m/%d/%Y"
FMT_TIME heure au format hh:mm, sans les secondes "%H:%M"