Formatting: Add support for seconds to `human_time_diff()`.
The web has gotten so much faster since `human_time_diff()` was created, we need to be able to measure time differences with much finer granularity. Now, we can. Props johnjamesjacoby, pento. Fixes #35655. git-svn-id: https://develop.svn.wordpress.org/trunk@45573 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
66d9c7e491
commit
b9cd66f483
|
@ -3608,6 +3608,7 @@ function sanitize_email( $email ) {
|
|||
* "5 mins", "2 days".
|
||||
*
|
||||
* @since 1.5.0
|
||||
* @since 5.3.0 Added support for showing a difference in seconds.
|
||||
*
|
||||
* @param int $from Unix timestamp from which the difference begins.
|
||||
* @param int $to Optional. Unix timestamp to end the time difference. Default becomes time() if not set.
|
||||
|
@ -3620,7 +3621,14 @@ function human_time_diff( $from, $to = '' ) {
|
|||
|
||||
$diff = (int) abs( $to - $from );
|
||||
|
||||
if ( $diff < HOUR_IN_SECONDS ) {
|
||||
if ( $diff < MINUTE_IN_SECONDS ) {
|
||||
$secs = $diff;
|
||||
if ( $secs <= 1 ) {
|
||||
$secs = 1;
|
||||
}
|
||||
/* translators: Time difference between two dates, in seconds. %s: Number of seconds */
|
||||
$since = sprintf( _n( '%s second', '%s seconds', $secs ), $secs );
|
||||
} elseif ( $diff < HOUR_IN_SECONDS && $diff >= MINUTE_IN_SECONDS ) {
|
||||
$mins = round( $diff / MINUTE_IN_SECONDS );
|
||||
if ( $mins <= 1 ) {
|
||||
$mins = 1;
|
||||
|
|
|
@ -19,6 +19,11 @@ class Tests_Formatting_HumanTimeDiff extends WP_UnitTestCase {
|
|||
// Data for test_human_time_diff.
|
||||
function data_test_human_time_diff() {
|
||||
return array(
|
||||
array(
|
||||
'37 seconds',
|
||||
new DateTime( '2016-01-01 12:00:37' ),
|
||||
'Test a difference of 37 seconds.',
|
||||
),
|
||||
array(
|
||||
'5 mins',
|
||||
new DateTime( '2016-01-01 12:05:00' ),
|
||||
|
|
Loading…
Reference in New Issue