strftime


time apg

RETURNS the formated local time or date.


May experience difficulties in displaying characters outside of the English language when preceded with the setlocale function.




<?php

str
|false strftime str $format [, int|null $timestamp null ] )


Where,

$format The format of outpitted date 
                 
(SEE the below TABLE
                 
In additionsome constants may be used,  
                 
which have recurring values 
                 
(SEE the below TABLE

$timestamp The UNIX timestamp
                      
The current local time, if not given
                      
In other words it uses the default provided  
                      by the time 
function.  

?>

 $format 

RECOGNIZED CHARACTERS
$format Description Example returned values
Day
%a An abbreviated textual representation of the day Sun through Sat
%A A full textual representation of the day Sunday through Saturday
%d Two-digit day of the month (with leading zeros) 01 to 31
%e Day of the month, with a space preceding single digits.
Not implemented as described on Windows.
* See below for more information.
1 to 31
%j Day of the year, 3 digits with leading zeros 001 to 366
%u ISO-8601 numeric representation of the day of the week 1 => Monday
through
7 => Sunday
%w Numeric representation of the day of the week 0 => Sunday
through
6 => Saturday
Week
%U Week number of the given year, starting with the first Sunday as the first week 42
(the 42nd 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 through 53
(where 53 accounts for an overlapping week)
%W A numeric representation of the week of the year, starting with the first Monday as the first week 46
(for the 46th week of the year beginning with a Monday)
Month
%b Abbreviated month name, based on the locale Jan through Dec
%B Full month name, based on the locale January through December
%h Abbreviated month name, based on the locale
(an alias of %b)
Jan through Dec
%m Two digit representation of the month 01 through 12
Year
%C Two digit representation of the century
(year divided by 100, truncated to an integer)
19 for the 20th Century
%g Two digit representation of the year going by
ISO-8601:1988 standards
(see %V)
09 for the week of January 6, 2009
%G The full four-digit version of %g 2008 for the week of January 3, 2009
%y Two digit representation for the year 99 or 18
%Y Four digit representation for the year 1999 or 2018
Time
%H Two digit representation of the hour in 24-hour 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 Hour in 12-hour format, with a space preceding single digits 1 through 12
%M Two digit representation of the minute 00 through 59
%p UPPER-CASE 'AM' or 'PM' based on the given time AM for 00:31, PM for 22:23
%P lower-case 'am' or 'pm' based on the given time am for 00:31, pm for 22:23
%r Same as "%I:%M:%S %p" 09:34:17 PM for 21:34:17
%R Same as "%H:%M" 00:35 for 12:35 AM, 16:44 for 4:44 PM
%S Two digit representation of the second 00 through 59
%T Same as "%H:%M:%S" 21:34:17 for 09:34:17 PM
%X Preferred time representation based on locale, without the date 03:59:16 or 15:59:16
%z The time zone offset.
Not implemented as described on Windows.
See below for more information.
-0500 for US Eastern Time
%Z The time zone abbreviation.
Not implemented as described on Windows.
See below for more information.
EST for Eastern Time
Time and Date Stamps
%c Preferred date and time stamp based on locale Tue Feb 5 00:45:10 2009 for February 5, 2009 at 12:45:10 AM
%D Same as "%m/%d/%y" 02/05/09 for February 5, 2009
%F Same as "%Y-%m-%d"
(commonly used in database datestamps)
2009-02-05 for February 5, 2009
%s Unix Epoch Time timestamp
(same as the time function)
305815200 for September 10, 1979 08:40:00 AM
%x Preferred date representation based on locale, without the time 02/05/09 for February 5, 2009
Miscellaneous
%n A newline character ("\n")
%t A Tab character ("\t")
%% A literal percentage character ("%")
ed48


 $timestap 


The UNIX timestamp.




* The maximun lenght for the $format is 1023 characters.

Contrary to ISO-8601:1988, Sun Solaris starts with Sunday as 1.
As a result, %u may not function as described in this manual.

* The %e modifier is not supported in the Windows™ implementation of this function.
To achieve this value, the %#d modifier can be used instead.
The example below illustrates how to write a cross platform compatible function.
The %z and %Z modifiers both return the time zone name instead of the offset or abbreviation.

* The %P modifier is not supported in the macOS implementation of this function.

Since PHP 8.0.0 $timestamp is nullable.


See also: date_default_timezone_set and date_default_timezone_get.

See also: gmstrftime for the time returned by GMT, Greenwich Mean Time



  1 EXERCISE   

<?php

$def_tz_get 
date_default_timezone_get();

echo 
'Timezone: ' $def_tz_get '<br><br>';

$loc_BR '"pt_BR.utf-8", "pt-BR", "pt_BR"';

setlocale(LC_ALL"pt_BR.utf-8""pt-BR""pt_BR");

$pt_strf "%A, %d de %B de %Y %Hh %Mmin %Ss";

$fpt_d strftime($pt_strftime());

echo 
'Locale: ' $loc_BR '<br>' $fpt_d;

echo 
'<br><br>or avoiding mistakes with ç:<br><br>';

$pt_strf "%a, %d de %B de %Y %Hh %Mmin %Ss";

$fpt_d strftime($pt_strftime());

echo 
$fpt_d '<br><br><br>';

$loc_US ='"en_US", "en-US"';

setlocale(LC_ALL"en_US""en-US");

$en_strf "%A, %B/%d/%Y %Hh %Mmin %Ss";

$fen_d strftime($en_strftime());

echo 
'Locale: ' $loc_US '<br>' $fen_d;

?>

 RESULT   


Locale: "pt_BR.utf-8", "pt-BR", "pt_BR"
ter�a-feira, 27 de abril de 2021 10h 31min 48s

or avoiding mistakes with ç:

ter, 27 de abril de 2021 10h 31min 48s


Locale: "en_US", "en-US"
Tuesday, April/27/2021 10h 31min 48s



These data refer to the instant this exercise was written.


With each new run new values will be displayed


  2 EXERCISE   

<?php

/* - - - - - - - - - - - - - - - - -
   Final UNIX ERA for 32 bit
   - - - - - - - - - - - - - - - - - */

$mts 2147483647
// This is the maximum integer value in 32bit register.

$tz_as_set date_default_timezone_set('America/Chicago');

$def_tas_get_now date_default_timezone_get();

echo 
$def_tas_get_now '<br><br><br>';

setlocale(LC_ALL"pt_BR.utf-8"
                        
"portuguese-brazil"
                        
"ptb");

$mpt_strf "%A, %d de %B de %Y %Hh %Mmin %Ss";

$fmpt_u strftime($mpt_strf$mts);

echo 
$fmpt_u '<br><br><br><br>';

$tz_utc_set date_default_timezone_set('UTC');

$def_tutc_get_now date_default_timezone_get();

echo 
$def_tutc_get_now '<br><br><br>';

setlocale(LC_ALL"en_US""american"
                        
"american english"
                        
"american-english"
                        
"english-american"
                        
"english-us"
                        
"english-usa"
                        
"enu""us""usa");

$men_strf "%A, %B/%d/%Y %Hh %Mmin %Ss";

$fmen_u strftime($men_strf$mts);
echo 
$fmen_u;

?> 

  3 EXERCISE   

<?php

$mts 
time();

$tz_as_set date_default_timezone_set('America/New_York');

$def_tas_get_now date_default_timezone_get();

echo 
$def_tas_get_now '<br><br><br>';

setlocale(LC_ALL"en_US""american"
                        
"american english"
                        
"american-english"
                        
"english-american"
                        
"english-us"
                        
"english-usa"
                        
"enu""us""usa"); 

$mpt_strf "%A, %B/%d/%Y %Hh %Mmin %Ss";

$fmpt_u strftime($mpt_strf$mts);

echo 
$fmpt_u '<br><br><br><br>';

$tz_utc_set date_default_timezone_set('UTC');

$def_tutc_get_now date_default_timezone_get();

echo 
$def_tutc_get_now '<br><br><br>';

$men_strf "%A, %B/%d/%Y %Hh %Mmin %Ss";

$fmen_u strftime($men_strf$mts);
echo 
$fmen_u;

?>