Convert from MySQL datetime to another format with PHP
$format
should be a PHP date format string. āUā and āGā formats will return a sum of timestamp with timezone offset. $date
is expected to be local time in MySQL format (Y-m-d H:i:s
).
Historically UTC time could be passed to the function to produce Unix timestamp.
If $translate
is true then the given date and format string will be passed to wp_date()
for translation.
This is function
/**
Convert given MySQL date string into a different format.
*
$format
should be a PHP date format string.
'U' and 'G' formats will return a sum of timestamp with timezone offset.
$date
is expected to be local time in MySQL format (Y-m-d H:i:s
).
*
Historically UTC time could be passed to the function to produce Unix timestamp.
*
If $translate
is true then the given date and format string will
be passed to wp_date()
for translation.
*
@since 0.71
*
@param string $format Format of the date to return.
@param string $date Date string to convert.
@param bool $translate Whether the return date should be translated. Default true.
@return string|int|false Formatted date string or sum of Unix timestamp and timezone offset.
False on failure.
*/
function mysql2date( $format, $date, $translate = true )
{
if ( empty( $date ) ) {
return false;
}
$datetime = date_create( $date, wp_timezone() );
if ( false === $datetime ) {
return false;
}
// Returns a sum of timestamp with timezone offset. Ideally should never be used.
if ( 'G' === $format || 'U' === $format ) {
return $datetime->getTimestamp() + $datetime->getOffset();
}
if ( $translate ) {
return wp_date( $format, $datetime->getTimestamp() );
}
return $datetime->format( $format );
}