PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.0.2
Jetpack – WP Security, Backup, Speed, & Growth v12.0.2
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 4 years ago class.json-api-links.php 4 years ago class.json-api-metadata.php 4 years ago class.json-api-platform-jetpack.php 3 years ago class.json-api-platform.php 3 years ago class.json-api-post-base.php 3 years ago class.json-api-post-jetpack.php 4 years ago class.json-api-site-base.php 3 years ago class.json-api-site-jetpack-base.php 4 years ago class.json-api-site-jetpack.php 3 years ago class.json-api-token.php 4 years ago
class.json-api-date.php
98 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * WPCOM_JSON_API_Date class.
4 *
5 * @package automattic/jetpack
6 */
7 /**
8 * Base class for WPCOM_JSON_API_Date.
9 */
10 class WPCOM_JSON_API_Date {
11 /**
12 * Returns ISO 8601 formatted datetime: 2011-12-08T01:15:36-08:00
13 *
14 * @param string $date_gmt GMT datetime string.
15 * @param string $date Optional. Used to calculate the offset from GMT.
16 *
17 * @return string
18 */
19 public static function format_date( $date_gmt, $date = null ) {
20 $timestamp_gmt = strtotime( "$date_gmt+0000" );
21
22 if ( null === $date ) {
23 $timestamp = $timestamp_gmt;
24 $west = 0;
25 $minutes = 0;
26 $hours = 0;
27 } else {
28 $date_time = date_create( "$date+0000" );
29 if ( $date_time ) {
30 $timestamp = date_format( $date_time, 'U' );
31 } else {
32 $timestamp = 0;
33 }
34
35 // "0000-00-00 00:00:00" == -62169984000
36 if ( -62169984000 === $timestamp_gmt ) {
37 // WordPress sets post_date=now, post_date_gmt="0000-00-00 00:00:00" for all drafts
38 // WordPress sets post_modified=now, post_modified_gmt="0000-00-00 00:00:00" for new drafts.
39
40 // Try to guess the correct offset from the blog's options.
41 $timezone_string = get_option( 'timezone_string' );
42
43 if ( $timezone_string && $date_time ) {
44 $timezone = timezone_open( $timezone_string );
45 if ( $timezone ) {
46 $offset = $timezone->getOffset( $date_time );
47 }
48 } else {
49 $offset = 3600 * get_option( 'gmt_offset' );
50 }
51 } else {
52 $offset = $timestamp - $timestamp_gmt;
53 }
54
55 $west = $offset < 0;
56 $offset = abs( $offset );
57 $hours = (int) floor( $offset / 3600 );
58 $offset -= $hours * 3600;
59 $minutes = (int) floor( $offset / 60 );
60 }
61
62 return (string) gmdate( 'Y-m-d\\TH:i:s', $timestamp ) . sprintf( '%s%02d:%02d', $west ? '-' : '+', $hours, $minutes );
63 }
64
65 /**
66 * Returns ISO 8601 formatted duration interval: P0DT1H10M0S
67 *
68 * @param string $time Duration in minutes or hours.
69 *
70 * @return null|string
71 */
72 public static function format_duration( $time ) {
73 $timestamp = strtotime( $time, 0 );
74
75 // Bail early if we don't recognize a date.
76 if ( empty( $timestamp ) ) {
77 return;
78 }
79
80 $days = floor( $timestamp / 86400 );
81 $timestamp = $timestamp % 86400;
82
83 $hours = floor( $timestamp / 3600 );
84 $timestamp = $timestamp % 3600;
85
86 $minutes = floor( $timestamp / 60 );
87 $timestamp = $timestamp % 60;
88
89 return (string) sprintf(
90 'P%dDT%dH%dM%dS',
91 $days,
92 $hours,
93 $minutes,
94 $timestamp
95 );
96 }
97 }
98