PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 15.8-beta
Jetpack – WP Security, Backup, Speed, & Growth v15.8-beta
15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / sal / class.json-api-date.php
jetpack / sal Last commit date
class.json-api-date.php 6 months ago class.json-api-links.php 6 months ago class.json-api-metadata.php 6 months ago class.json-api-platform-jetpack.php 6 months ago class.json-api-platform.php 6 months ago class.json-api-post-base.php 1 month ago class.json-api-post-jetpack.php 6 months ago class.json-api-site-base.php 4 weeks ago class.json-api-site-jetpack-base.php 6 months ago class.json-api-site-jetpack.php 6 months ago class.json-api-token.php 6 months ago
class.json-api-date.php
104 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * WPCOM_JSON_API_Date class.
4 *
5 * @package automattic/jetpack
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit( 0 );
10 }
11
12 /**
13 * Base class for WPCOM_JSON_API_Date.
14 */
15 class WPCOM_JSON_API_Date {
16 /**
17 * Returns ISO 8601 formatted datetime: 2011-12-08T01:15:36-08:00
18 *
19 * @param string $date_gmt GMT datetime string.
20 * @param string $date Optional. Used to calculate the offset from GMT.
21 *
22 * @return string
23 */
24 public static function format_date( $date_gmt, $date = null ) {
25 $offset = 0;
26 $timestamp_gmt = strtotime( "$date_gmt+0000" );
27
28 if ( null === $date ) {
29 $timestamp = $timestamp_gmt;
30 $west = 0;
31 $minutes = 0;
32 $hours = 0;
33 } else {
34 $date_time = date_create( "$date+0000" );
35 if ( $date_time ) {
36 $timestamp = date_format( $date_time, 'U' );
37 } else {
38 $timestamp = 0;
39 }
40
41 // "0000-00-00 00:00:00" == -62169984000
42 if ( -62169984000 === $timestamp_gmt ) {
43 // WordPress sets post_date=now, post_date_gmt="0000-00-00 00:00:00" for all drafts
44 // WordPress sets post_modified=now, post_modified_gmt="0000-00-00 00:00:00" for new drafts.
45
46 // Try to guess the correct offset from the blog's options.
47 $timezone_string = get_option( 'timezone_string' );
48
49 if ( $timezone_string && $date_time ) {
50 $timezone = timezone_open( $timezone_string );
51 if ( $timezone ) {
52 $offset = $timezone->getOffset( $date_time );
53 }
54 } else {
55 $offset = 3600 * (float) get_option( 'gmt_offset' );
56 }
57 } else {
58 $offset = $timestamp - $timestamp_gmt;
59 }
60
61 $west = $offset < 0;
62 $offset = abs( $offset );
63 $hours = (int) floor( $offset / 3600 );
64 $offset -= $hours * 3600;
65 $minutes = (int) floor( $offset / 60 );
66 }
67
68 return gmdate( 'Y-m-d\\TH:i:s', $timestamp ) . sprintf( '%s%02d:%02d', $west ? '-' : '+', $hours, $minutes );
69 }
70
71 /**
72 * Returns ISO 8601 formatted duration interval: P0DT1H10M0S
73 *
74 * @param string $time Duration in minutes or hours.
75 *
76 * @return null|string
77 */
78 public static function format_duration( $time ) {
79 $timestamp = strtotime( $time, 0 );
80
81 // Bail early if we don't recognize a date.
82 if ( empty( $timestamp ) ) {
83 return;
84 }
85
86 $days = floor( $timestamp / 86400 );
87 $timestamp = $timestamp % 86400;
88
89 $hours = floor( $timestamp / 3600 );
90 $timestamp = $timestamp % 3600;
91
92 $minutes = floor( $timestamp / 60 );
93 $timestamp = $timestamp % 60;
94
95 return sprintf(
96 'P%dDT%dH%dM%dS',
97 $days,
98 $hours,
99 $minutes,
100 $timestamp
101 );
102 }
103 }
104