Theory of Operation | Zend_Date Programmer's Reference Guide | Zend_Date API Overview
# Basic Methods 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. # Current Date 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. Example #1 Creating the Current Date $date = new Zend_Date(); // Output of the current timestamp print $date; # Zend_Date by Example 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. # Output a Date 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. Example #2 get() - Output a Date $date = new Zend_Date(); // Output of the desired date print $date->get(); # Setting a Date 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. Example #3 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 and Subtracting Dates 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. Example #4 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"; # Comparison of Dates 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. Example #5 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. Example #6 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."; }
Theory of Operation | Zend_Date Programmer's Reference Guide | Zend_Date API Overview