计算从注册日期到今天的天数

时间:2016-06-13 作者:kiarashi

我想为那些在x天内注册的用户添加额外的文本。

我的功能如下:

   $today           = current_time( \'mysql\' );
   $days_diff       = date( \'d\', $today);   
   $register_date   = strtotime( get_the_author_meta( \'user_registered\', $post_author_id ) );
   $register_on = date_i18n( get_option(\'date_format\'), $register_date );

   echo sprintf( __( \'%s ago\', \'kiwi\' ), apply_filters( \'string_format_i18n\', human_time_diff( $register_date ) ) );
当我在上使用var\\u转储时$today, $days_diff, 和$register_date

string(19) "2016-06-13 13:50:38" 
string(2) "01" 
string(12) "June 3, 2016"
问题是$days_diff. 任何人都知道如何更改此变量,以便它计算从注册日期到$today?

1 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

我在用这个answer from StackOverflow 作为使用PHP 5.2.2函数的基础

主要问题是human_time_diff() 并不总是返回天,也没有关于返回内容的参数。此函数只返回它们已注册的时间,无论是天、周、月还是年。我认为最可靠的解决方案是在PHP中完成这一切,真的:

$today_obj      = new DateTime( date( \'Y-m-d\', strtotime( \'today\' ) ) );            // Get today\'s Date Object
$register_date  = get_the_author_meta( \'user_registered\', get_current_user_id() );  // Grab the registration Date
$registered_obj = new DateTime( date( \'Y-m-d\', strtotime( $register_date ) ) );     // Get the registration Date Object
$interval_obj   = $today_obj->diff( $registered_obj );                              // Retrieve the difference Object

if( $interval_obj->days > 1 ) {             // The most commonly hit condition at the top
    echo __( "Registered {$interval_obj->days} days ago", "kiwi" );
} elseif( 0 == $interval_obj->days ) {      // IF they registered today
    echo __( \'Registered Today\', \'kiwi\' );
} elseif( 1 == $interval_obj->days ) {      // IF they registered yesterday
    echo __( \'Registered Yesterday\', \'kiwi\' );
} else {                                    // The off-chance we have less than zero
    echo __( \'Registered\', \'kiwi\' );
}
在这个答案中,我们使用PHP DateTime Class 得到我们需要的东西。我删除了i18n 函数和过滤器,我认为不需要它们,因为我们只处理整数,而不是特定的日期/时间。

如果代码注释需要更多说明,请在下面留下注释,我将对此进行详细说明。

相关推荐

WPQuery Date and ACF

我正在创建一个查询,需要按ACF日期字段进行筛选。在数据库中(wp\\u post\\u meta table中)的值如下:MM/DD/YYYY我有几个房间,在date\\u available\\u from字段中的值为:2021 06月01日2021 08月21日2021 08月31日2021 09月06日2021 07月30日2021 11月31日2021 12月31日ul>然后我像这样进行查询:$args[1] = array( \'posts_per_page\' => -1