Open In App

PHP | strftime() Function

Last Updated : 06 Jul, 2021
Comments
Improve
Suggest changes
Like Article
Like
Report

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.

Syntax: 

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().

Example:  

PHP
<?php

// This program prints the current day 
setlocale(LC_TIME, "C");
echo strftime("%A");
?>

Output: 

Thursday


Format: Following are the values that can be added to $format for a desired output. 
 

  • Hour formatting: 
FORMATDESCRIPTIONEXAMPLE
%HTwo digit representation of the hour in 24-hour format it's like train timing format.00 through 23
%kHour in 24-hour format, with a space preceding single digits0 through 23
%ITwo digit representation of the hour in 12-hour format01 through 12
%l12-hour format representation, with a space preceding single digits.1,2,3,.,12
%MTwo digit representation of the minute00 to 59
%pUPPER-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
%Plower-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
%rSame as "%I:%M:%S %p"02:22:22 PM for 14:22:22
%RSame as "%H:%M"00:44 for 12:44 AM, 17:45for 5:45PM
%SIt,s two digit representation of seconds.00 to 59
%TSame as "%H:%M:%S"20:24:37 for 08:24:37 PM
%XIt represent preferred time representation without the date, based on locale.04:44:16 or 16:44:16
%zThe time zone offset. Not implemented as described on Windows. See below for more information.0500 for US Eastern Time
%ZIt represent time zone by reducing in 2 or three character.EST for Eastern Time
  • Time and Date stamps formatting: 
FORMATDESCRIPTIONEXAMPLE
%cPreferred date and time stamp based on locale.Tue Jan 5 00:55:25 2009 for January 5, 2009 at 12:55:25 AM
%DSame as "%m/%d/%y"01/05/09 for January 5, 2009
%FSame as "%Y-%m-%d" used in database datestamps.2009-01-05 for January 5, 2009
%sUnix Epoch Time timestamp same as the time() function.1525376494 for February 27, 2020 04:50:00 PM
%xPreferred date representation without the time based on locale.01/05/09 for January 5, 2009
  • Day formatting: 
FORMATDESCRIPTIONEXAMPLE
%aIt reduced the textual representation of the day name.Sun,Mon, ...
%AIt's the textual representation of the full day name.Sunday,Monday,..
%dIt represent the day in double digits even day one represent like 01.01 to 31.
%eIt represent the day in single digits but day ten of the month present like 10.1 to 31.
%jIt represent the year in triple digits even day one represent like 001.001 to 366.
%uISO-8601 numeric representation of the day of the week.1 for Monday to 7 for Sunday.
%wIt is the numeric representation of the day of the week count start from 0.0 for Sunday to 6 for Saturday.
  • Week formatting: 
FORMATDESCRIPTIONEXAMPLE
%UNumber of week in the given year, starting from first Sunday as the first week13 there are 13th full week of the year,
%VISO-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 week01 to 53 where 53 accounts for an overlapping week.
%WIt 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 formatting: 
FORMATDESCRIPTIONEXAMPLE
%bIt reduced the textual representation of the month name based on the locale.Jan, Feb, ...
%BIt's the textual representation of the full month name based on the locale.January, February, ..
%hIt reduced the textual representation of the month name based on the locale (an alias of %b).Jan, Feb, ..
%mIt represents the day in double digits even month one represents like 01.01 for January, 02 for February and so on.
  • Year formatting: 
FORMATDESCRIPTIONEXAMPLE
%CIt represent the century in double digits (year divided by 100, truncated to an integer).19 for the 20th Century
%gIt represent the year in double digits by ISO-8601:1988 standards (see %V)09 for the week of January 6, 2009
%GIt is the full four-digit version of %g.2008 for the week of January 3, 2009
%yIt is the two digit representation of the year.09 for 2009, 79 for 1979
%YFour digit representation for the year2038
  • Miscellaneous formatting: 
     
FORMATDESCRIPTION
%nIt is a newline character ("\n")
%tIt 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.  

PHP
<?php

// Displays the date 
echo strftime("%d, %B, %Y", strtotime("01/03/2004"));

// Displays the time
echo strftime("   %I:%M  %p", strtotime("21:34"));
?>

Output: 

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.) 

PHP
<?php

// Setting locale to german
setlocale(LC_ALL, "de");
echo strftime("The current german time is %r");

// Setting locale to english 
setlocale(LC_ALL, "en");
echo strftime(" and the current english time is %r");
?>

Output: 

The current german time is 22:14:20 and the current english time is 10:14:20 PM

Reference: https://www.php.net/manual/en/function.strftime.php
 


Next Article

Similar Reads