Php datetime utc format

PHP 8.0: New p date format for UTC Z time zone designation

There is a new date format introduced in PHP 8.0: p . This new lower case «p» date format behaves similar to the upper case P , which shows the time zone offset. The difference between P and p format is that the new p format uses Z for UTC time, while the P format uses +00:00 .

The ISO 8601 date format permits UTC time with +00:00 format, or with Z . This means both date formats below are valid:

With the new p date formatter, it is now possible to create a date with the second pattern above as well:

Here is a quick list of PHP ISO8601-related date formats:

>=PHP 8.0
DateTimeInterface::ATOM
DATE_ATOM
Valid ISO 8601 date format.
2020-09-09T20:42:34+00:00 2020-09-09T20:42:34+00:00
c
Valid ISO 8601 date format.
2020-09-09T20:42:34+00:00 2020-09-09T20:42:34+00:00
P +00:00 +00:00
p
p is new in PHP 8.0
p Z
Y-m-d\TH:i:sP
Valid ISO 8601 date format. Same as c and DATE_ATOM
2020-09-09T20:42:34+00:00 2020-09-09T20:42:34+00:00
Y-m-d\TH:i:sp
p is new in PHP 8.0
2020-09-09T20:42:34p 2020-09-09T20:42:34+00:00

Dates formatted with +00:00 to indicate UTC times are perfectly valid. Quoting from Wikipedia:

An offset of zero, in addition to having the special representation «Z», can also be stated numerically as «+00:00», «+0000», or «+00».

Backwards Compatibility Impact

UTC offsets indicated with +00:00 is perfectly valid ISO 8601 date formats. If it is absolutely necessary to use Z instead of of +00:00 for UTC time, the new p format can be helpful.

While it is not possible to backport the formatter itself, a simple string-replace hack could achieve the same results as PHP 8.0 in all PHP versions since 5:

Источник

date

Returns a string formatted according to the given format string using the given integer timestamp (Unix timestamp) or the current time if no timestamp is given. In other words, timestamp is optional and defaults to the value of time() .

Unix timestamps do not handle timezones. Use the DateTimeImmutable class, and its DateTimeInterface::format() formatting method to format date/time information with a timezone attached.

Parameters

Note: date() will always generate 000000 as microseconds since it takes an int parameter, whereas DateTime::format() does support microseconds if DateTime was created with microseconds.

The optional timestamp parameter is an int Unix timestamp that defaults to the current local time if timestamp is omitted or null . In other words, it defaults to the value of time() .

Return Values

Returns a formatted date string.

Errors/Exceptions

Every call to a date/time function will generate a E_WARNING if the time zone is not valid. See also date_default_timezone_set()

Changelog

Version Description
8.0.0 timestamp is nullable now.

Examples

Example #1 date() examples

// set the default timezone to use.
date_default_timezone_set ( ‘UTC’ );

// Prints something like: Monday
echo date ( «l» );

// Prints something like: Monday 8th of August 2005 03:12:46 PM
echo date ( ‘l jS \of F Y h:i:s A’ );

// Prints: July 1, 2000 is on a Saturday
echo «July 1, 2000 is on a » . date ( «l» , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));

/* use the constants in the format parameter */
// prints something like: Wed, 25 Sep 2013 15:28:57 -0700
echo date ( DATE_RFC2822 );

// prints something like: 2000-07-01T00:00:00+00:00
echo date ( DATE_ATOM , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));
?>

You can prevent a recognized character in the format string from being expanded by escaping it with a preceding backslash. If the character with a backslash is already a special sequence, you may need to also escape the backslash.

Example #2 Escaping characters in date()

It is possible to use date() and mktime() together to find dates in the future or the past.

Example #3 date() and mktime() example

$tomorrow = mktime ( 0 , 0 , 0 , date ( «m» ) , date ( «d» )+ 1 , date ( «Y» ));
$lastmonth = mktime ( 0 , 0 , 0 , date ( «m» )- 1 , date ( «d» ), date ( «Y» ));
$nextyear = mktime ( 0 , 0 , 0 , date ( «m» ), date ( «d» ), date ( «Y» )+ 1 );
?>

Note:

This can be more reliable than simply adding or subtracting the number of seconds in a day or month to a timestamp because of daylight saving time.

Some examples of date() formatting. Note that you should escape any other characters, as any which currently have a special meaning will produce undesirable results, and other characters may be assigned meaning in future PHP versions. When escaping, be sure to use single quotes to prevent characters like \n from becoming newlines.

Example #4 date() Formatting

// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

$today = date ( «F j, Y, g:i a» ); // March 10, 2001, 5:16 pm
$today = date ( «m.d.y» ); // 03.10.01
$today = date ( «j, n, Y» ); // 10, 3, 2001
$today = date ( «Ymd» ); // 20010310
$today = date ( ‘h-i-s, j-m-y, it is w Day’ ); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date ( ‘\i\t \i\s \t\h\e jS \d\a\y.’ ); // it is the 10th day.
$today = date ( «D M j G:i:s T Y» ); // Sat Mar 10 17:16:18 MST 2001
$today = date ( ‘H:m:s \m \i\s\ \m\o\n\t\h’ ); // 17:03:18 m is month
$today = date ( «H:i:s» ); // 17:16:18
$today = date ( «Y-m-d H:i:s» ); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
?>

To format dates in other languages, IntlDateFormatter::format() can be used instead of date() .

Notes

Note:

To generate a timestamp from a string representation of the date, you may be able to use strtotime() . Additionally, some databases have functions to convert their date formats into timestamps (such as MySQL’s » UNIX_TIMESTAMP function).

Timestamp of the start of the request is available in $_SERVER[‘REQUEST_TIME’] .

See Also

  • DateTimeImmutable::__construct() — Returns new DateTimeImmutable object
  • DateTimeInterface::format() — Returns date formatted according to given format
  • gmdate() — Format a GMT/UTC date/time
  • idate() — Format a local time/date part as integer
  • getdate() — Get date/time information
  • getlastmod() — Gets time of last page modification
  • mktime() — Get Unix timestamp for a date
  • IntlDateFormatter::format() — Format the date/time value as a string
  • time() — Return current Unix timestamp
  • Predefined DateTime Constants

User Contributed Notes

  • Date/Time Functions
    • checkdate
    • date_​add
    • date_​create_​from_​format
    • date_​create_​immutable_​from_​format
    • date_​create_​immutable
    • date_​create
    • date_​date_​set
    • date_​default_​timezone_​get
    • date_​default_​timezone_​set
    • date_​diff
    • date_​format
    • date_​get_​last_​errors
    • date_​interval_​create_​from_​date_​string
    • date_​interval_​format
    • date_​isodate_​set
    • date_​modify
    • date_​offset_​get
    • date_​parse_​from_​format
    • date_​parse
    • date_​sub
    • date_​sun_​info
    • date_​sunrise
    • date_​sunset
    • date_​time_​set
    • date_​timestamp_​get
    • date_​timestamp_​set
    • date_​timezone_​get
    • date_​timezone_​set
    • date
    • getdate
    • gettimeofday
    • gmdate
    • gmmktime
    • gmstrftime
    • idate
    • localtime
    • microtime
    • mktime
    • strftime
    • strptime
    • strtotime
    • time
    • timezone_​abbreviations_​list
    • timezone_​identifiers_​list
    • timezone_​location_​get
    • timezone_​name_​from_​abbr
    • timezone_​name_​get
    • timezone_​offset_​get
    • timezone_​open
    • timezone_​transitions_​get
    • timezone_​version_​get

    Источник

    Get UTC Time in PHP

    Get UTC Time in PHP

    1. Use gmdate() to Get UTC Time
    2. Use strtotime() to Get UTC Time
    3. Use date() to Get UTC Time
    4. Use date_default_timezone_set() to Get UTC Time
    5. Use DateTime Object to Get UTC Time

    This article teaches you how to get UTC in PHP using five methods. These methods will use date_default_timezone_set() , gmdate() , strtotime() , date() , and the DateTime object.

    Use gmdate() to Get UTC Time

    The gmdate() function will format a date and time in UTC. Once you supply gmdate() with your date time format, e.g. Y-m-d H:i:s , it’ll show it in UTC.

    We’ve set the current time zone in the following code to Detroit, Michigan. This will show the time in Detroit and what it’s like in UTC.

    php  // Use the time in Detroit, Michigan, as the default  // time.  date_default_timezone_set("America/Detroit");   // We get the current time in Detroit, Michigan.  $time_in_Detroit = date('Y-m-d H:i:s', time());   // We get the UTC time using the gmdate() function  $utc_time = gmdate("Y-m-d H:i:s");   // For comparison, we show the time in Detroit and  // what it'll be in UTC.  echo "The current time in Detroit is: " . $time_in_Detroit . PHP_EOL;  echo "The UTC is: " . $utc_time; ?> 

    Output (you’ll have different results):

    The current time in Detroit is: 2022-07-27 17:32:36 The UTC is: 2022-07-27 21:32:36 

    Use strtotime() to Get UTC Time

    The method strtotime() will parse a textual date time into a Unix timestamp. After that, you can do what you want with the timestamp.

    In the following code, we get a timestamp from strtotime() using gmdate() . Then we pass the timestamp as the second parameter of the date() function.

    Doing this allows you to write your date format and get the result in UTC. For comparison, we’ve set the time zone of the script to Guatemala.

    php  // Use the time in Guatemala as the default  // time.  date_default_timezone_set("America/Guatemala");   // We get the current time in Guatemala  $time_in_Guatemala = date('Y-m-d H:i:s', time());   // We get the UTC UNIX timestamp  $utc_timestamp = strtotime(gmdate("M d Y H:i:s"));   // We convert the UNIX timestamp to UTC  $utc_time = date('Y-m-d H:i:s', $utc_timestamp);   // For comparison, we show the time in Guatemala  // and what it'll be in UTC.  echo "The time in Guatemala is: " . $time_in_Guatemala . PHP_EOL;  echo "The UTC is: " . $utc_time; ?> 

    Output (you’ll have different results):

    The time in Guatemala is: 2022-07-27 15:48:01 The UTC is: 2022-07-27 21:48:01 

    Use date() to Get UTC Time

    We’ll use the date() function to format a date, but with some math, date() will return the UTC. The math involves subtracting the time zone offset from the epoch time, and then you pass the result as the second parameter of the date() function.

    For comparison, we’ve changed the time zone to Adelaide, Australia. When you run the code below, you’ll see the UTC and what it’s like in Adelaide.

     php  // Use the time in Adelaide, Australia, as the default  // time.  date_default_timezone_set("Australia/Adelaide");   // We get the current time in Adelaide  $time_in_Adelaide = date('Y-m-d H:i:s', time());   // We get the UTC time using the date() function.  $utc_time = date("Y-m-d H:i:s", time() - date("Z"));   // For comparison, we show the time in Adelaide  // and what it'll be in UTC.  echo "The time in Adelaide is: " . $time_in_Adelaide . PHP_EOL;  echo "The UTC is: " . $utc_time; ?> 

    Источник

    Читайте также:  Python requests 404 error
Оцените статью