Caution: The documentation you are viewing is
for an older version of Zend Framework.
You can find the documentation of the current version at:
https://docs.zendframework.com/
Constants for General Date Functions - Zend_Date
Whenever a Zend_Date method has a $parts parameter, one of the constants below can be used as the argument for that parameter, in order to select a specific part of a date or indicate the date format used or desired (e.g. RFC 822).
For example, the constant Zend_Date::HOUR can be used in the ways shown below. When working with days of the week, calendar dates, hours, minutes, seconds, and any other date parts that are expressed differently when in different parts of the world, the object's timezone will automatically be used to compute the correct value, even though the internal timestamp is the same for the same moment in time, regardless of the user's physical location in the world. Regardless of the units involved, output must be expressed either as GMT or UTC or localized to a locale. The example output below reflects localization to Europe/GMT+1 hour (e.g. Germany, Austria, France).
Method | Description | Original date | Result |
---|---|---|---|
get(Zend_Date::HOUR) | Output of the hour | 2009年02月13日T14:53:27+01:00 | 14 |
set(12, Zend_Date::HOUR) | Set new hour | 2009年02月13日T14:53:27+01:00 | 2009年02月13日T12:53:27+01:00 |
add(12, Zend_Date::HOUR) | Add hours | 2009年02月13日T14:53:27+01:00 | 2009年02月14日T02:53:27+01:00 |
sub(12, Zend_Date::HOUR) | Subtract hours | 2009年02月13日T14:53:27+01:00 | 2009年02月13日T02:53:27+01:00 |
compare(12, Zend_Date::HOUR) | Compare hour, returns 0, 1 or -1 | 2009年02月13日T14:53:27+01:00 | 1 (if object > argument) |
copy(Zend_Date::HOUR) | Copies only the hour part | 2009年02月13日T14:53:27+01:00 | 1970年01月01日T14:00:00+01:00 |
equals(14, Zend_Date::HOUR) | Compares the hour, returns TRUE or FALSE | 2009年02月13日T14:53:27+01:00 | TRUE |
isEarlier(12, Zend_Date::HOUR) | Compares the hour, returns TRUE or FALSE | 2009年02月13日T14:53:27+01:00 | TRUE |
isLater(12, Zend_Date::HOUR) | Compares the hour, returns TRUE or FALSE | 2009年02月13日T14:53:27+01:00 | FALSE |
Each part of a date or time has a unique constant in Zend_Date. All constants supported by Zend_Date are listed below.
Constant | Description | Date | Result |
---|---|---|---|
Zend_Date::DAY | Day (as number, two digits) | 2009年02月13日T14:53:27+01:00 | 13 |
Zend_Date::DAY_SHORT | Day (as number, one or two digits) | 2009年02月06日T14:53:27+01:00 | 6 |
Zend_Date::WEEKDAY | Weekday (Name of the day, localized, complete) | 2009年02月13日T14:53:27+01:00 | Friday |
Zend_Date::WEEKDAY_SHORT | Weekday (Name of the day, localized, abbreviated, two to four chars) | 2009年02月13日T14:53:27+01:00 | Fri for Friday |
Zend_Date::WEEKDAY_NAME | Weekday (Name of the day, localized, abbreviated, one or two chars) | 2009年02月13日T14:53:27+01:00 | Fr for Friday |
Zend_Date::WEEKDAY_NARROW | Weekday (Name of the day, localized, abbreviated, one char) | 2009年02月13日T14:53:27+01:00 | F for Friday |
Zend_Date::WEEKDAY_DIGIT | Weekday (0 = Sunday, 6 = Saturday) | 2009年02月13日T14:53:27+01:00 | 5 for Friday |
Zend_Date::WEEKDAY_8601 | Weekday according to ISO 8601 (1 = Monday, 7 = Sunday) | 2009年02月13日T14:53:27+01:00 | 5 for Friday |
Zend_Date::DAY_OF_YEAR | Day (as a number, one or two digits) | 2009年02月13日T14:53:27+01:00 | 43 |
Zend_Date::DAY_SUFFIX | English addendum for the day (st, nd, rd, th) | 2009年02月13日T14:53:27+01:00 | th |
Constant | Description | Date | Result |
---|---|---|---|
Zend_Date::WEEK | Week (as number, 1-53) | 2009年02月13日T14:53:27+01:00 | 8 |
Constant | Description | Date | Result |
---|---|---|---|
Zend_Date::MONTH_NAME | Month (Name of the month, localized, complete) | 2009年02月13日T14:53:27+01:00 | February |
Zend_Date::MONTH_NAME_SHORT | Month (Name of the month, localized, abbreviated, two to four chars) | 2009年02月13日T14:53:27+01:00 | Feb |
Zend_Date::MONTH_NAME_NARROW | Month (Name of the month, localized, abbreviated, one or two chars) | 2009年02月13日T14:53:27+01:00 | F |
Zend_Date::MONTH | Month (Number of the month, two digits) | 2009年02月13日T14:53:27+01:00 | 02 |
Zend_Date::MONTH_SHORT | Month (Number of the month, one or two digits) | 2009年02月13日T14:53:27+01:00 | 2 |
Zend_Date::MONTH_DAYS | Number of days for this month (number) | 2009年02月13日T14:53:27+01:00 | 28 |
Constant | Description | Date | Result |
---|---|---|---|
Zend_Date::YEAR | Year (number) | 2009年02月13日T14:53:27+01:00 | 2009 |
Zend_Date::YEAR_8601 | Year according to ISO 8601 (number) | 2009年02月13日T14:53:27+01:00 | 2009 |
Zend_Date::YEAR_SHORT | Year (number, two digits) | 2009年02月13日T14:53:27+01:00 | 09 |
Zend_Date::YEAR_SHORT_8601 | Year according to ISO 8601 (number, two digits) | 2009年02月13日T14:53:27+01:00 | 09 |
Zend_Date::LEAPYEAR | Is the year a leap year? (TRUE or FALSE) | 2009年02月13日T14:53:27+01:00 | FALSE |
Constant | Description | Date | Result |
---|---|---|---|
Zend_Date::HOUR | Hour (00-23, two digits) | 2009年02月13日T14:53:27+01:00 | 14 |
Zend_Date::HOUR_SHORT | Hour (0-23, one or two digits) | 2009年02月13日T14:53:27+01:00 | 14 |
Zend_Date::HOUR_SHORT_AM | Hour (1-12, one or two digits) | 2009年02月13日T14:53:27+01:00 | 2 |
Zend_Date::HOUR_AM | Hour (01-12, two digits) | 2009年02月13日T14:53:27+01:00 | 02 |
Zend_Date::MINUTE | Minute (00-59, two digits) | 2009年02月13日T14:53:27+01:00 | 53 |
Zend_Date::MINUTE_SHORT | Minute (0-59, one or two digits) | 2009年02月13日T14:03:27+01:00 | 3 |
Zend_Date::SECOND | Second (00-59, two digits) | 2009年02月13日T14:53:27+01:00 | 27 |
Zend_Date::SECOND_SHORT | Second (0-59, one or two digits) | 2009年02月13日T14:53:07+01:00 | 7 |
Zend_Date::MILLISECOND | Millisecond (theoretically infinite) | 2009年02月06日T14:53:27.20546 | 20546 |
Zend_Date::MERIDIEM | Time of day (forenoon or afternoon) | 2009年02月13日T14:53:27+01:00 | afternoon |
Zend_Date::SWATCH | Swatch Internet Time | 2009年02月13日T14:53:27+01:00 | 620 |
Constant | Description | Date | Result |
---|---|---|---|
Zend_Date::TIMEZONE | Name der time zone (string, abbreviated) | 2009年02月13日T14:53:27+01:00 | CET |
Zend_Date::TIMEZONE_NAME | Name of the time zone (string, complete) | 2009年02月13日T14:53:27+01:00 | Europe/Paris |
Zend_Date::TIMEZONE_SECS | Difference of the time zone to GMT in seconds (integer) | 2009年02月13日T14:53:27+01:00 | 3600 (seconds to GMT) |
Zend_Date::GMT_DIFF | Difference to GMT in seconds (string) | 2009年02月13日T14:53:27+01:00 | +0100 |
Zend_Date::GMT_DIFF_SEP | Difference to GMT in seconds (string, separated) | 2009年02月13日T14:53:27+01:00 | +01:00 |
Zend_Date::DAYLIGHT | Summer time or Winter time? (TRUE or FALSE) | 2009年02月13日T14:53:27+01:00 | FALSE |
Constant | Description | Date | Result |
---|---|---|---|
Zend_Date::ISO_8601 | Date according to ISO 8601 (string, complete) | 2009年02月13日T14:53:27+01:00 | 2009年02月13日T14:53:27+01:00 |
Zend_Date::RFC_2822 | Date according to RFC 2822 (string) | 2009年02月13日T14:53:27+01:00 | 2009年2月13日 14:53:27 +0100 |
Zend_Date::TIMESTAMP | » Unix time (seconds since 1.1.1970, mixed) | 2009年02月13日T14:53:27+01:00 | 1234533207 |
Zend_Date::ATOM | Date according to ATOM (string) | 2009年02月13日T14:53:27+01:00 | 2009年02月13日T14:53:27+01:00 |
Zend_Date::COOKIE | Date for Cookies (string, for Cookies) | 2009年02月13日T14:53:27+01:00 | Friday, 13-Feb-09 14:53:27 Europe/Paris |
Zend_Date::RFC_822 | Date according to RFC 822 (string) | 2009年02月13日T14:53:27+01:00 | Fri, 13 Feb 09 14:53:27 +0100 |
Zend_Date::RFC_850 | Date according to RFC 850 (string) | 2009年02月13日T14:53:27+01:00 | Friday, 13-Feb-09 14:53:27 Europe/Paris |
Zend_Date::RFC_1036 | Date according to RFC 1036 (string) | 2009年02月13日T14:53:27+01:00 | Fri, 13 Feb 09 14:53:27 +0100 |
Zend_Date::RFC_1123 | Date according to RFC 1123 (string) | 2009年02月13日T14:53:27+01:00 | 2009年2月13日 14:53:27 +0100 |
Zend_Date::RFC_3339 | Date according to RFC 3339 (string) | 2009年02月13日T14:53:27+01:00 | 2009年02月13日T14:53:27+01:00 |
Zend_Date::RSS | Date for RSS Feeds (string) | 2009年02月13日T14:53:27+01:00 | 2009年2月13日 14:53:27 +0100 |
Zend_Date::W3C | Date for HTML or HTTP according to W3C (string) | 2009年02月13日T14:53:27+01:00 | 2009年02月13日T14:53:27+01:00 |
Especially note Zend_Date::DATES, since this format specifier has a unique property within Zend_Date as an input format specifier. When used as an input format for $part, this constant provides the most flexible acceptance of a variety of similar date formats. Heuristics are used to automatically extract dates from an input string and then "fix" simple errors in dates (if any), such as swapping of years, months, and days, when possible.
Constant | Description | Date | Result |
---|---|---|---|
Zend_Date::ERA | Epoch (string, localized, abbreviated) | 2009年02月13日T14:53:27+01:00 | AD (anno Domini) |
Zend_Date::ERA_NAME | Epoch (string, localized, complete) | 2009年02月13日T14:53:27+01:00 | anno domini (anno Domini) |
Zend_Date::DATES | Standard date (string, localized, default value). | 2009年02月13日T14:53:27+01:00 | 13.02.2009 |
Zend_Date::DATE_FULL | Complete date (string, localized, complete) | 2009年02月13日T14:53:27+01:00 | Friday, 13. February 2009 |
Zend_Date::DATE_LONG | Long date (string, localized, long) | 2009年02月13日T14:53:27+01:00 | 13. February 2009 |
Zend_Date::DATE_MEDIUM | Normal date (string, localized, normal) | 2009年02月13日T14:53:27+01:00 | 13.02.2009 |
Zend_Date::DATE_SHORT | Abbreviated Date (string, localized, abbreviated) | 2009年02月13日T14:53:27+01:00 | 13.02.09 |
Zend_Date::TIMES | Standard time (string, localized, default value) | 2009年02月13日T14:53:27+01:00 | 14:53:27 |
Zend_Date::TIME_FULL | Complete time (string, localized, complete) | 2009年02月13日T14:53:27+01:00 | 14:53 Uhr CET |
Zend_Date::TIME_LONG | Long time (string, localized, Long) | 2009年02月13日T14:53:27+01:00 | 14:53:27 CET |
Zend_Date::TIME_MEDIUM | Normal time (string, localized, normal) | 2009年02月13日T14:53:27+01:00 | 14:53:27 |
Zend_Date::TIME_SHORT | Abbreviated time (string, localized, abbreviated) | 2009年02月13日T14:53:27+01:00 | 14:53 |
Zend_Date::DATETIME | Standard date with time (string, localized, default value). | 2009年02月13日T14:53:27+01:00 | 13.02.2009 14:53:27 |
Zend_Date::DATETIME_FULL | Complete date with time (string, localized, complete) | 2009年02月13日T14:53:27+01:00 | Friday, 13. February 2009 14:53 Uhr CET |
Zend_Date::DATETIME_LONG | Long date with time (string, localized, long) | 2009年02月13日T14:53:27+01:00 | 13. February 2009 14:53:27 CET |
Zend_Date::DATETIME_MEDIUM | Normal date with time (string, localized, normal) | 2009年02月13日T14:53:27+01:00 | 13.02.2009 14:53:27 |
Zend_Date::DATETIME_SHORT | Abbreviated date with time (string, localized, abbreviated) | 2009年02月13日T14:53:27+01:00 | 13.02.09 14:53 |
If you need a date format not shown above, then use a self-defined format composed from the ISO format token specifiers below. The following examples illustrate the usage of constants from the table below to create self-defined ISO formats. The format length is unlimited. Also, multiple usage of format constants is allowed.
The accepted format specifiers can be changed from ISO Format to PHP's date format if you are more comfortable with it. However, not all formats defined in the ISO norm are supported with PHP's date format specifiers. Use the Zend_Date::setOptions(array('format_type' => 'php')) method to switch Zend_Date methods from supporting ISO format specifiers to PHP date() type specifiers (see Self-Defined OUTPUT Formats Using PHP's date() Format Specifiers below).
Example #1 Self-Defined ISO Formats
Constant | Description | Corresponds best to | Result |
---|---|---|---|
G | Epoch, localized, abbreviated | Zend_Date::ERA | AD |
GG | Epoch, localized, abbreviated | Zend_Date::ERA | AD |
GGG | Epoch, localized, abbreviated | Zend_Date::ERA | AD |
GGGG | Epoch, localized, complete | Zend_Date::ERA_NAME | anno domini |
GGGGG | Epoch, localized, abbreviated | Zend_Date::ERA | a |
y | Year, at least one digit | Zend_Date::YEAR | 9 |
yy | Year, at least two digit | Zend_Date::YEAR_SHORT | 09 |
yyy | Year, at least three digit | Zend_Date::YEAR | 2009 |
yyyy | Year, at least four digit | Zend_Date::YEAR | 2009 |
yyyyy | Year, at least five digit | Zend_Date::YEAR | 02009 |
Y | Year according to ISO 8601, at least one digit | Zend_Date::YEAR_8601 | 9 |
YY | Year according to ISO 8601, at least two digit | Zend_Date::YEAR_SHORT_8601 | 09 |
YYY | Year according to ISO 8601, at least three digit | Zend_Date::YEAR_8601 | 2009 |
YYYY | Year according to ISO 8601, at least four digit | Zend_Date::YEAR_8601 | 2009 |
YYYYY | Year according to ISO 8601, at least five digit | Zend_Date::YEAR_8601 | 02009 |
M | Month, one or two digit | Zend_Date::MONTH_SHORT | 2 |
MM | Month, two digit | Zend_Date::MONTH | 02 |
MMM | Month, localized, abbreviated | Zend_Date::MONTH_NAME_SHORT | Feb |
MMMM | Month, localized, complete | Zend_Date::MONTH_NAME | February |
MMMMM | Month, localized, abbreviated, one digit | Zend_Date::MONTH_NAME_NARROW | F |
w | Week, one or two digit | Zend_Date::WEEK | 5 |
ww | Week, two digit | Zend_Date::WEEK | 05 |
d | Day of the month, one or two digit | Zend_Date::DAY_SHORT | 9 |
dd | Day of the month, two digit | Zend_Date::DAY | 09 |
D | Day of the year, one, two or three digit | Zend_Date::DAY_OF_YEAR | 7 |
DD | Day of the year, two or three digit | Zend_Date::DAY_OF_YEAR | 07 |
DDD | Day of the year, three digit | Zend_Date::DAY_OF_YEAR | 007 |
E | Day of the week, localized, abbreviated, one char | Zend_Date::WEEKDAY_NARROW | M |
EE | Day of the week, localized, abbreviated, two or more chars | Zend_Date::WEEKDAY_NAME | Mo |
EEE | Day of the week, localized, abbreviated, three chars | Zend_Date::WEEKDAY_SHORT | Mon |
EEEE | Day of the week, localized, complete | Zend_Date::WEEKDAY | Monday |
EEEEE | Day of the week, localized, abbreviated, one digit | Zend_Date::WEEKDAY_NARROW | M |
e | Number of the day, one digit | Zend_Date::WEEKDAY_DIGIT | 4 |
ee | Number of the day, two digit | Zend_Date::WEEKDAY_NARROW | 04 |
a | Time of day, localized | Zend_Date::MERIDIEM | vorm. |
h | Hour, (1-12), one or two digit | Zend_Date::HOUR_SHORT_AM | 2 |
hh | Hour, (01-12), two digit | Zend_Date::HOUR_AM | 02 |
H | Hour, (0-23), one or two digit | Zend_Date::HOUR_SHORT | 2 |
HH | Hour, (00-23), two digit | Zend_Date::HOUR | 02 |
m | Minute, (0-59), one or two digit | Zend_Date::MINUTE_SHORT | 2 |
mm | Minute, (00-59), two digit | Zend_Date::MINUTE | 02 |
s | Second, (0-59), one or two digit | Zend_Date::SECOND_SHORT | 2 |
ss | Second, (00-59), two digit | Zend_Date::SECOND | 02 |
S | Millisecond | Zend_Date::MILLISECOND | 20536 |
z | Time zone, localized, abbreviated | Zend_Date::TIMEZONE | CET |
zz | Time zone, localized, abbreviated | Zend_Date::TIMEZONE | CET |
zzz | Time zone, localized, abbreviated | Zend_Date::TIMEZONE | CET |
zzzz | Time zone, localized, complete | Zend_Date::TIMEZONE_NAME | Europe/Paris |
Z | Difference of time zone | Zend_Date::GMT_DIFF | +0100 |
ZZ | Difference of time zone | Zend_Date::GMT_DIFF | +0100 |
ZZZ | Difference of time zone | Zend_Date::GMT_DIFF | +0100 |
ZZZZ | Difference of time zone, separated | Zend_Date::GMT_DIFF_SEP | +01:00 |
A | Milliseconds from the actual day | Zend_Date::MILLISECOND | 20563 |
Note: Note that the default ISO format differs from PHP's format which can be irritating if you have not used in previous. Especially the format specifiers for Year and Minute are often not used in the intended way.
For year there are two specifiers available which are often mistaken. The Y specifier for the ISO year and the y specifier for the real year. The difference is small but significant. Y calculates the ISO year, which is often used for calendar formats. See for example the 31. December 2007. The real year is 2007, but it is the first day of the first week in the week 1 of the year 2008. So, if you are using 'dd.MM.yyyy' you will get '31.December.2007' but if you use 'dd.MM.YYYY' you will get '31.December.2008'. As you see this is no bug but a expected behaviour depending on the used specifiers.
For minute the difference is not so big. ISO uses the specifier m for the minute, unlike PHP which uses i. So if you are getting no minute in your format check if you have used the right specifier.
If you are more comfortable with PHP's date format specifier than with ISO format specifiers, then you can use the Zend_Date::setOptions(array('format_type' => 'php')) method to switch Zend_Date methods from supporting ISO format specifiers to PHP date() type specifiers. Afterwards, all format parameters must be given with » PHP's date() format specifiers. The PHP date format lacks some of the formats supported by the ISO Format, and vice-versa. If you are not already comfortable with it, then use the standard ISO format instead. Also, if you have legacy code using PHP's date format, then either manually convert it to the ISO format using Zend_Locale_Format::convertPhpToIsoFormat(), or use setOptions(). The following examples illustrate the usage of constants from the table below to create self-defined formats.
Example #2 Self-Defined Formats with PHP Specifier
It is important to note that Zend_Date's constants are using the ISO notation. This means, that when you set Zend_Date to use the PHP notation, you should not use Zend_Date's constants, but define the wished format manually. If you don't follow this recommendation, you can get unexpected results.
The following table shows the list of PHP date format specifiers with their equivalent Zend_Date constants and CLDR and ISO equivalent format specifiers. In most cases, when the CLDR and ISO format does not have an equivalent format specifier, the PHP format specifier is not altered by Zend_Locale_Format::convertPhpToIsoFormat(), and the Zend_Date methods then recognize these "peculiar" PHP format specifiers, even when in the default "ISO" format mode.
Constant | Description | Corresponds best to | closest CLDR equivalent | Result |
---|---|---|---|---|
d | Day of the month, two digit | Zend_Date::DAY | dd | 09 |
D | Day of the week, localized, abbreviated, three digit | Zend_Date::WEEKDAY_SHORT | EEE | Mon |
j | Day of the month, one or two digit | Zend_Date::DAY_SHORT | d | 9 |
l (lowercase L) | Day of the week, localized, complete | Zend_Date::WEEKDAY | EEEE | Monday |
N | Number of the weekday, one digit | Zend_Date::WEEKDAY_8601 | e | 4 |
S | English suffixes for day of month, two chars | no equivalent | no equivalent | st |
w | Number of the weekday, 0=sunday, 6=saturday | Zend_Date::WEEKDAY_DIGIT | no equivalent | 4 |
z | Day of the year, one, two or three digit | Zend_Date::DAY_OF_YEAR | D | 7 |
W | Week, one or two digit | Zend_Date::WEEK | w | 5 |
F | Month, localized, complete | Zend_Date::MONTH_NAME | MMMM | February |
m | Month, two digit | Zend_Date::MONTH | MM | 02 |
M | Month, localized, abbreviated | Zend_Date::MONTH_NAME_SHORT | MMM | Feb |
n | Month, one or two digit | Zend_Date::MONTH_SHORT | M | 2 |
t | Number of days per month, one or two digits | Zend_Date::MONTH_DAYS | no equivalent | 30 |
L | Leapyear, boolean | Zend_Date::LEAPYEAR | no equivalent | TRUE |
o | Year according to ISO 8601, at least four digit | Zend_Date::YEAR_8601 | YYYY | 2009 |
Y | Year, at least four digit | Zend_Date::YEAR | yyyy | 2009 |
y | Year, at least two digit | Zend_Date::YEAR_SHORT | yy | 09 |
a | Time of day, localized | Zend_Date::MERIDIEM | a (sort of, but likely to be uppercase) | vorm. |
A | Time of day, localized | Zend_Date::MERIDIEM | a (sort of, but no guarantee that the format is uppercase) | VORM. |
B | Swatch internet time | Zend_Date::SWATCH | no equivalent | 1463 |
g | Hour, (1-12), one or two digit | Zend_Date::HOUR_SHORT_AM | h | 2 |
G | Hour, (0-23), one or two digit | Zend_Date::HOUR_SHORT | H | 2 |
h | Hour, (01-12), two digit | Zend_Date::HOUR_AM | hh | 02 |
H | Hour, (00-23), two digit | Zend_Date::HOUR | HH | 02 |
i | Minute, (00-59), two digit | Zend_Date::MINUTE | mm | 02 |
s | Second, (00-59), two digit | Zend_Date::SECOND | ss | 02 |
e | Time zone, localized, complete | Zend_Date::TIMEZONE_NAME | zzzz | Europe/Paris |
I | Daylight | Zend_Date::DAYLIGHT | no equivalent | 1 |
O | Difference of time zone | Zend_Date::GMT_DIFF | Z or ZZ or ZZZ | +0100 |
P | Difference of time zone, separated | Zend_Date::GMT_DIFF_SEP | ZZZZ | +01:00 |
T | Time zone, localized, abbreviated | Zend_Date::TIMEZONE | z or zz or zzz | CET |
Z | Time zone offset in seconds | Zend_Date::TIMEZONE_SECS | no equivalent | 3600 |
c | Standard Iso format output | Zend_Date::ISO_8601 | no equivalent | 2004年02月13日T15:19:21+00:00 |
r | Standard Rfc 2822 format output | Zend_Date::RFC_2822 | no equivalent | 2000年12月21日 16:01:07 +0200 |
U | Unix timestamp | Zend_Date::TIMESTAMP | no equivalent | 15275422364 |