If your PHP version is lower than 5.3 then you can use this class to be able to use the functions "setTimestamp" and "getTimestamp":
<?php
class MyDateTime extends DateTime
{
public function setTimestamp( $timestamp )
{
$date = getdate( ( int ) $timestamp );
$this->setDate( $date['year'] , $date['mon'] , $date['mday'] );
$this->setTime( $date['hours'] , $date['minutes'] , $date['seconds'] );
}
public function getTimestamp()
{
return $this->format( 'U' );
}
}
$date = new MyDateTime();
$date->setTimestamp( $someTimestamp );
echo $date->format( 'd/m/Y H:i:s' );
?>
DateTime::setTimestamp
date_timestamp_set
(PHP 5 >= 5.3.0)
DateTime::setTimestamp -- date_timestamp_set — Assigne la date et l'heure à l'aide d'un timestamp Unix
Description
Style orienté objet
Style procédural
Assigne la date et l'heure à l'aide d'un timestamp Unix.
Liste de paramètres
-
object -
Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.
-
unixtimestamp -
Timestamp Unix représentant la date et l'heure.
Valeurs de retour
Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.
Exemples
Exemple #1 Exemple avec DateTime::setTimestamp()
Style orienté objet
<?php
$date = new DateTime();
echo $date->format('U = Y-m-d H:i:s') . "\n";
$date->setTimestamp(1171502725);
echo $date->format('U = Y-m-d H:i:s') . "\n";
?>
Style procédural
<?php
$date = date_create();
echo date_format($date, 'U = Y-m-d H:i:s') . "\n";
date_timestamp_set($date, 1171502725);
echo date_format($date, 'U = Y-m-d H:i:s') . "\n";
?>
Les exemples ci-dessus vont afficher quelque chose de similaire à :
1272508903 = 2010-04-28 22:41:43 1171502725 = 2007-02-14 20:25:25
Notes
Pour PHP 5.2, une alternative est de passer un timestamp Unix à DateTime::__construct() comme montré dans l'exemple suivant.
Exemple #2 DateTime::setTimestamp() alternative pour PHP 5.2
<?php
$ts = 1171502725;
$date = new DateTime("@$ts");
echo $date->format('U = Y-m-d H:i:s') . "\n";
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
1171502725 = 2007-02-14 20:25:25
Voir aussi
- DateTime::getTimestamp()
When the exact time is important then it is important to note the difference between this and the UnixTimeStamp. The function will change the timestamp if necessary to take into account the daylight savings time.
e.g. Working with the 'Europe/London' timezone and setting the DateTime object to a timestamp of 1288486753 will result in the function automatically altering it to 1288490353.
This is because it is taking the fall time instead of the summer time (they will both be Sun, 31-Oct-2010 01:X:Y (I didn't check the hour and minute)).
Sincerely,
Aouie
