The strftime() function is an inbuilt function in PHP that formats local time or date according to locale settings i.e. it formats local time or date for location set for it of a place.
strftime( $format, $timestamp )
Parameters: This function accept two parameters as mentioned above and described below:
- $format: This parameter defines the format for the date and time it is a must required parameter.
- $timestamp: The optional timestamp parameter is an integer Unix timestamp that defaults to the current local time if a timestamp is not given. In other words, it defaults to the value of time().
Return Values: It returns a string formatted to $format using the given $timestamp(if mentioned explicitly, otherwise takes default time). Month and weekday names and other language-dependent strings respect the current locale set with setlocale().
Format: Following are the values that can be added to $format for a desired output.
- Hour formating:
FORMAT DESCRIPTION EXAMPLE %H Two digit representation of the hour in 24-hour format it’s like train timing format. 00 through 23 %k Hour in 24-hour format, with a space preceding single digits 0 through 23 %I Two digit representation of the hour in 12-hour format 01 through 12 %l 12-hour format representation, with a space preceding single digits. 1,2,3,.,12 %M Two digit representation of the minute 00 to 59 %p UPPER-CASE ‘AM’ or ‘PM’ based on the given time, 11:59 after will AM before will AM. AM for 00:31, PM for 22:23 %P lower-case ‘am’ or ‘pm’ based on the given time, 11:59 after will pm before will am. am for 00:31, pm for 22:23 %r Same as “%I:%M:%S %p” 02:22:22 PM for 14:22:22 %R Same as “%H:%M” 00:44 for 12:44 AM, 17:45for 5:45PM %S It,s two digit representation of seconds. 00 to 59 %T Same as “%H:%M:%S” 20:24:37 for 08:24:37 PM %X It represent preferred time representation without the date, based on locale. 04:44:16 or 16:44:16 %z The time zone offset. Not implemented as described on Windows. See below for more information. 0500 for US Eastern Time %Z It represent time zone by reducing in 2 or three character. EST for Eastern Time
- Time and Date stamps formating:
FORMAT DESCRIPTION EXAMPLE %c Preferred date and time stamp based on locale. Tue Jan 5 00:55:25 2009 for January 5, 2009 at 12:55:25 AM %D Same as “%m/%d/%y” 01/05/09 for January 5, 2009 %F Same as “%Y-%m-%d” used in database datestamps. 2009-01-05 for January 5, 2009 %s Unix Epoch Time timestamp same as the time() function. 1525376494 for February 27, 2020 04:50:00 PM %x Preferred date representation without the time based on locale. 01/05/09 for january5, 2009
- Day formating:
FORMAT DESCRIPTION EXAMPLE %a It reduced the textual representation of the day name. Sun,Mon, … %A It’s the textual representation of the full day name. Sunday,Monday,.. %d It represent the day in double digits even day one repersent like 01. 01 to 31. %e It represent the day in single digits but day ten of the month present like 10. 1 to 31. %j It represent the year in triple digits even day one repersent like 001. 001 to 366. %u ISO-8601 numeric representation of the day of the week. 1 for Monday to 7 for Sunday. %w It is the numeric representation of the day of the week count start from 0. 0 for Sunday to 6 for Saturday.
- Week formating:
FORMAT DESCRIPTION EXAMPLE %U Number of week in the given year, starting from first Sunday as the first week 13 there are 13th full week of the year, %V ISO-8601:1988 week number of the given year, starting with the first week of the year with at least 4 weekdays, with Monday being the start of the week 01 to 53 where 53 accounts for an overlapping week. %W It is numeric representation of week of the year, starting from first Monday as the first week like %U. 46, 46th week of the year beginning with a Monday.
- Month formating:
FORMAT DESCRIPTION EXAMPLE %b It reduced the textual representation of the month name based on the locale. Jan, Feb, … %B It’s the textual representation of the full month name based on the locale. January, February, .. %h It reduced the textual representation of the month name based on the locale (an alias of %b). Jan, Feb, .. %m It represent the day in double digits even month one repersent like 01. 01 for January, 02 for February and so on.
- Year formating:
FORMAT DESCRIPTION EXAMPLE %C It represent the century in double digits (year divided by 100, truncated to an integer). 19 for the 20th Century %g It represent the year in double digits by ISO-8601:1988 standards (see %V) 09 for the week of January 6, 2009 %G It is the full four-digit version of %g. 2008 for the week of January 3, 2009 %y It is the two digit representation of the year. 09 for 2009, 79 for 1979 %Y Four digit representation for the year 2038
- Miscellaneous formating:
FORMAT DESCRIPTION %n It is a newline character (“\n”) %t It is a tab character (“\t”) %% It is a literal percentage character (“%”)
Below examples illustrate the application of strftime() in php:
Example 1 : A simple program to display the date and time provided to it.
03, January, 2004 09:34 PM
Example 2: This example display the time at a specific region (an additional function, setlocale() is employed for this. For setlocale() to work, locales should be supported by your server.)
The current german time is 22:14:20 and the current english time is 10:14:20 PM