The following sections show basic usage of Zend_Date
primarily by
example. For this manual, "dates" always imply a calendar date with a time, even when not
explicitly mentioned, and vice-versa. The part not specified defaults to an internal
representation of "zero". Thus, adding a date having no calendar date and a time value of 12
hours to another date consisting only of a calendar date would result in a date having that
calendar date and a time of "noon".
Setting only a specific date, with no time part, implies a time set to 00:00:00. Conversely, setting only a specific time implies a date internally set to 01.01.1970 plus the number of seconds equal to the elapsed hours, minutes, and seconds identified by the time. Normally, people measure things from a starting point, such as the year 0 A.D. However, many software systems use the first second of the year 1970 as the starting point, and denote times as a timestamp offset counting the number of seconds elapsed from this starting point.
Without any arguments, constructing an instance returns an object in the default locale
with the current, local date using PHP's
time()
function to obtain the UNIX timestamp
for the object. Make sure your PHP environment has the correct
default timezone.
Przykład 165. Creating the Current Date
$date = new Zend_Date(); // Output of the current timestamp print $date;
Reviewing basic methods of Zend_Date
is a good place to start for
those unfamiliar with date objects in other languages or frameworks. A small example
will be provided for each method below.
The date in a Zend_Date
object may be obtained as a localized
integer or string using the get()
method. There are many
available options, which will be explained in later sections.
Przykład 166. get() - Output a Date
$date = new Zend_Date(); // Output of the desired date print $date->get();
The set()
method alters the date stored in the object, and
returns the final date value as a timestamp (not an object). Again, there are many
options which will be explored in later sections.
Przykład 167. set() - Set a Date
$date = new Zend_Date(); // Setting of a new time $date->set('13:00:00',Zend_Date::TIMES); print $date->get(Zend_Date::W3C);
Adding two dates with add()
usually involves adding a real
date in time with an artificial timestramp representing a date part, such as 12
hours, as shown in the example below. Both add()
and
sub()
use the same set of options as
set()
, which will be explained later.
Przykład 168. add() - Adding Dates
$date = new Zend_Date(); // changes $date by adding 12 hours $date->add('12:00:00', Zend_Date::TIMES); echo "Date via get() = ", $date->get(Zend_Date::W3C), "\n"; // use magic __toString() method to call Zend_Date's toString() echo "Date via toString() = ", $date, "\n";
All basic Zend_Date
methods can operate on entire dates
contained in the objects, or can operate on date parts, such as comparing the
minutes value in a date to an absolute value. For example, the current minutes in
the current time may be compared with a specific number of minutes using
compare()
, as in the example below.
Przykład 169. compare() - Compare Dates
$date = new Zend_Date(); // Comparation of both times if ($date->compare(10, Zend_Date::MINUTE) == -1) { print "This hour is less than 10 minutes old"; } else { print "This hour is at least 10 minutes old"; }
For simple equality comparisons, use equals()
, which
returns a boolean.
Przykład 170. equals() - Identify a Date or Date Part
$date = new Zend_Date(); // Comparation of the two dates if ($date->equals(10, Zend_Date::HOUR)) { print "It's 10 o'clock. Time to get to work."; } else { print "It is not 10 o'clock. You can keep sleeping."; }