Home > Articles > Programming > PHP

Doing the Time Warp: Manipulating Date and Time in PHP 5

  • Print
  • + Share This
Most websites utilize the PHP date and time features only to display the current date, often just to make the website appear constantly up-to-date. Fortunately, though, the date and time features in PHP can be used to much greater effect, and this chapter details many of the possible uses for these handy tools.
This chapter is from the book

This chapter is from the book

Most of the time, the date and time functionalities of PHP 5 are used for printing out the current date and time—to pretend that the web page is up to date (you would be surprised how many larger websites actually use this). But apart from that, working with date and time in PHP offers many other possibilities, most of which you will find in this chapter.

First, though, it seems appropriate to have a look at the PHP function that is probably used the most for working with dates—date(). This function can take the current date (or an arbitrary one) and extract some information about it, for example, the day, whether it's a.m. or p.m., and what time it is according to the rather failed marketing stunt, "Swatch Internet Time." To do so, you call date() and provide a string as the first parameter. This string may now contain a list of formatting symbols that can be seen in Table 3.1 (the PHP manual carries a list with more examples at http://php.net/date). Each of these symbols is replaced by the associated date/time value.

Table 3.1 Formatting Symbols for date()




am or pm


AM or PM


Swatch Internet Time (between 000 and 999)


Date in ISO 8601 format


Day of month (from 01 to 31)


Day of week (from Mon to Sun)


Month (from January to December)


Hour (from 1 to 12)


Hour (from 0 to 23)


Hour (from 01 to 12)


Hour (from 00 to 23)


Minutes (from 00 to 59)


Whether date is in DST (1) or not (0)


Day of month (between 1 and 31)


Day of month (from Sunday to Saturday)


Whether date is in a leap year (1) or not (0)


Month (from 01 to 12)


Month (from Jan to Dec)


Month (from 1 to 12)


Difference to GMT (for example, +0100 for one hour ahead)


Date in RFC 2822 format


Seconds (from 00 to 59)


Ordinal suffix for the day of month (st, nr, td, th)


Number of days in the provided month (from 28 to 31)


Time zone of server (for example, CET)


Epoche value (seconds since January 1st, 1970, Midnight GMT)


Day of week (from 0—Sunday, to 6—Saturday)


Week number (according to ISO 8601, from 1 to 53)


Year (two digits)


Year (four digits)


Day of year (from 0 to 365)


Time zone difference to UTC (in seconds)

The function date() is very powerful and offers a broad range of ways to use it. However, especially if you have localized content, you need some good phrases. In this chapter, you will find many of them.

PHP's date and time functions have their own section in the PHP manual. You can find more information about date() and friends at http://php.net/datetime.

Using Text Within date()

date('\To\d\a\y \i\s \t\he jS \d\a\y of F')

Imagine you want to output the current date (or a specific date) and use custom strings in it. The code could look like a mess if you are trying it like this:

 echo 'Today is the ' . date('jS') . ' day of the 
  month ' . date('F');
 echo date('\To\d\a\y \i\s \t\he jS \d\a\y of F');

Using Ordinary Characters in date() (date.php)

The output of this script is something like this, depending on the current date:

Today is the 3rd day of the month May

The behavior of date() is the following: All characters within the first parameter that bear a special meaning (for example, formatting symbols) get replaced by the appropriate values. All other characters, however, remain unchanged. If a character is escaped using the backslash character (\), it is returned verbatim. So, the code at the beginning of this phrase shows a new version of the code that only uses one call to date().

  • + Share This
  • 🔖 Save To Your Account