}
}
if ( is_array( $value ) ) {
- // Work around PHP bug 45959 by copying to a temporary
+ // Work around https://bugs.php.net/bug.php?id=45959 by copying to a temporary
// (in this case, foreach gets $k === "1" but $tmp[$k] assigns as if $k === 1)
$tmp = [];
foreach ( $value as $k => $v ) {
}
}
+ /**
+ * Format an expiry timestamp for API output
+ * @since 1.29
+ * @param string $expiry Expiry timestamp, likely from the database
+ * @param string $infinity Use this string for infinite expiry
+ * (only use this to maintain backward compatibility with existing output)
+ * @return string Formatted expiry
+ */
+ public static function formatExpiry( $expiry, $infinity = 'infinity' ) {
+ static $dbInfinity;
+ if ( $dbInfinity === null ) {
+ $dbInfinity = wfGetDB( DB_REPLICA )->getInfinity();
+ }
+
+ if ( $expiry === '' || $expiry === null || $expiry === false ||
+ wfIsInfinity( $expiry ) || $expiry === $dbInfinity
+ ) {
+ return $infinity;
+ } else {
+ return wfTimestamp( TS_ISO_8601, $expiry );
+ }
+ }
+
/**@}*/
}