我们可以使用human_time_diff() 给我们一个可读的时差。首先,我们需要看看日子是否一样:
$date1 = get_field( \'date_start\', false, false );
$date1 = new DateTime( $date1 );
$unix1 = strtotime( $date1->format( \'Y-m-d\' ) );
$date2 = get_field( \'date_fin\', false, false );
$date2 = new DateTime( $date2 )
$unix2 = strtotime( $date2->format( \'Y-m-d\' ) );
if( 0 === ( $unix1 - $unix2 ) ) {
echo \'On Time!\';
} elseif( $unix2 < $unix1 ) {
echo human_time_diff( $unix1, $unix2 ) . \' Early\';
} else {
echo human_time_diff( $unix1, $unix2 ) . \' Late\';
}
一些输出示例:
日期1=6月3日
日期2=6月3日
Output: 准时
日期1=6月10日
日期2=6月13日
Output: 迟到3天
日期1=6月10日
日期2=6月3日
Output: 提前一周
如果我们想显示实际天数而不是week
或month
像human_time_diff()
我们可以从最小值中减去最大值,除以WordPress constant variable DAY_IN_SECONDS
. 然后我们将通过_n() function 显示复数或单数。
if( 0 === ( $unix1 - $unix2 ) ) {
echo \'On Time!\';
} elseif( $unix2 < $unix1 ) {
$days = ( intval( $unix1 - $unix2 ) / DAY_IN_SECONDS );
printf( _n( \'%s day early\', \'%s days early\', $days ), $days );
} else {
$days = ( intval( $unix2 - $unix1 ) / DAY_IN_SECONDS );
printf( _n( \'%s day late\', \'%s days late\', $days ), $days );
}