Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/jetpack/sal
File: class.json-api-date.php
<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
[0] Fix | Delete
/**
[1] Fix | Delete
* WPCOM_JSON_API_Date class.
[2] Fix | Delete
*
[3] Fix | Delete
* @package automattic/jetpack
[4] Fix | Delete
*/
[5] Fix | Delete
[6] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[7] Fix | Delete
exit( 0 );
[8] Fix | Delete
}
[9] Fix | Delete
[10] Fix | Delete
/**
[11] Fix | Delete
* Base class for WPCOM_JSON_API_Date.
[12] Fix | Delete
*/
[13] Fix | Delete
class WPCOM_JSON_API_Date {
[14] Fix | Delete
/**
[15] Fix | Delete
* Returns ISO 8601 formatted datetime: 2011-12-08T01:15:36-08:00
[16] Fix | Delete
*
[17] Fix | Delete
* @param string $date_gmt GMT datetime string.
[18] Fix | Delete
* @param string $date Optional. Used to calculate the offset from GMT.
[19] Fix | Delete
*
[20] Fix | Delete
* @return string
[21] Fix | Delete
*/
[22] Fix | Delete
public static function format_date( $date_gmt, $date = null ) {
[23] Fix | Delete
$offset = null;
[24] Fix | Delete
$timestamp_gmt = strtotime( "$date_gmt+0000" );
[25] Fix | Delete
[26] Fix | Delete
if ( null === $date ) {
[27] Fix | Delete
$timestamp = $timestamp_gmt;
[28] Fix | Delete
$west = 0;
[29] Fix | Delete
$minutes = 0;
[30] Fix | Delete
$hours = 0;
[31] Fix | Delete
} else {
[32] Fix | Delete
$date_time = date_create( "$date+0000" );
[33] Fix | Delete
if ( $date_time ) {
[34] Fix | Delete
$timestamp = date_format( $date_time, 'U' );
[35] Fix | Delete
} else {
[36] Fix | Delete
$timestamp = 0;
[37] Fix | Delete
}
[38] Fix | Delete
[39] Fix | Delete
// "0000-00-00 00:00:00" == -62169984000
[40] Fix | Delete
if ( -62169984000 === $timestamp_gmt ) {
[41] Fix | Delete
// WordPress sets post_date=now, post_date_gmt="0000-00-00 00:00:00" for all drafts
[42] Fix | Delete
// WordPress sets post_modified=now, post_modified_gmt="0000-00-00 00:00:00" for new drafts.
[43] Fix | Delete
[44] Fix | Delete
// Try to guess the correct offset from the blog's options.
[45] Fix | Delete
$timezone_string = get_option( 'timezone_string' );
[46] Fix | Delete
[47] Fix | Delete
if ( $timezone_string && $date_time ) {
[48] Fix | Delete
$timezone = timezone_open( $timezone_string );
[49] Fix | Delete
if ( $timezone ) {
[50] Fix | Delete
$offset = $timezone->getOffset( $date_time );
[51] Fix | Delete
}
[52] Fix | Delete
} else {
[53] Fix | Delete
$offset = 3600 * (float) get_option( 'gmt_offset' );
[54] Fix | Delete
}
[55] Fix | Delete
} else {
[56] Fix | Delete
$offset = $timestamp - $timestamp_gmt;
[57] Fix | Delete
}
[58] Fix | Delete
[59] Fix | Delete
$west = $offset < 0;
[60] Fix | Delete
$offset = abs( $offset );
[61] Fix | Delete
$hours = (int) floor( $offset / 3600 );
[62] Fix | Delete
$offset -= $hours * 3600;
[63] Fix | Delete
$minutes = (int) floor( $offset / 60 );
[64] Fix | Delete
}
[65] Fix | Delete
[66] Fix | Delete
return (string) gmdate( 'Y-m-d\\TH:i:s', $timestamp ) . sprintf( '%s%02d:%02d', $west ? '-' : '+', $hours, $minutes );
[67] Fix | Delete
}
[68] Fix | Delete
[69] Fix | Delete
/**
[70] Fix | Delete
* Returns ISO 8601 formatted duration interval: P0DT1H10M0S
[71] Fix | Delete
*
[72] Fix | Delete
* @param string $time Duration in minutes or hours.
[73] Fix | Delete
*
[74] Fix | Delete
* @return null|string
[75] Fix | Delete
*/
[76] Fix | Delete
public static function format_duration( $time ) {
[77] Fix | Delete
$timestamp = strtotime( $time, 0 );
[78] Fix | Delete
[79] Fix | Delete
// Bail early if we don't recognize a date.
[80] Fix | Delete
if ( empty( $timestamp ) ) {
[81] Fix | Delete
return;
[82] Fix | Delete
}
[83] Fix | Delete
[84] Fix | Delete
$days = floor( $timestamp / 86400 );
[85] Fix | Delete
$timestamp = $timestamp % 86400;
[86] Fix | Delete
[87] Fix | Delete
$hours = floor( $timestamp / 3600 );
[88] Fix | Delete
$timestamp = $timestamp % 3600;
[89] Fix | Delete
[90] Fix | Delete
$minutes = floor( $timestamp / 60 );
[91] Fix | Delete
$timestamp = $timestamp % 60;
[92] Fix | Delete
[93] Fix | Delete
return (string) sprintf(
[94] Fix | Delete
'P%dDT%dH%dM%dS',
[95] Fix | Delete
$days,
[96] Fix | Delete
$hours,
[97] Fix | Delete
$minutes,
[98] Fix | Delete
$timestamp
[99] Fix | Delete
);
[100] Fix | Delete
}
[101] Fix | Delete
}
[102] Fix | Delete
[103] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function