php - 计算注册日期和 1 年之间的天数
问题描述
我正在尝试计算差异并将其输出如下:“您的会员资格将在 XXX 天后续订。”
这是我正在使用的代码->
add_shortcode( 'membership', 'pren_info');
function pren_info() {
$pren = wp_get_current_user();
$first_name = $pren->first_name;
$last_name = $pren->last_name;
$date_format = 'j M Y H:i';
$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
$renewal_date = date('Y-m-d',strtotime('+1 year',$register_date));
$datediff = floor(strtotime($renewal_date)/(60*60*24)) - floor(strtotime($register_date)/(60*60*24));
echo '<div class="pren-hello"><b>Hi '.$first_name.'!</b></div>';
if( $interval_obj->days > 1 ) { // The most commonly hit condition at the top
echo __( "Your account was registered {$interval_obj->days} days ago as a member.", "theme" );
} elseif( 0 == $interval_obj->days ) { // IF they registered today
echo __( 'Your account was registered today.', 'theme' );
} elseif( 1 == $interval_obj->days ) { // IF they registered yesterday
echo __( 'Your account was registered yesterday.', 'theme' );
} else { // The off-chance we have less than zero
echo __( 'Please come back tomorrow for an update.', 'theme' );
}
echo '<div class="pren-info">In '.$datediff.' days, your membership needs to be renewed.</div>';
}
简码在显示名称和显示用户注册的天数方面起作用,但我无法工作的是:
我需要计算“从用户注册之日起1年以及该日期与他们注册日期之间的天数差异”的时间。
这“很难”解释 :) 这有意义吗?
解决方案
您可以使用它来计算两个日期之间的差异。它将返回一个整数。
function dateDifference($date_1 , $date_2 , $differenceFormat = '%a' )
{
$datetime1 = date_create($date_1);
$datetime2 = date_create($date_2);
$interval = date_diff($datetime1, $datetime2);
return $interval->format($differenceFormat);
}
推荐阅读
- asp.net - 无法为 .net 安装“LemmatizerPrebuiltCompact”库 - Visual Studio 错误
- javascript - ReactRedux 我想更新状态,但总是得到“TypeError:无法读取未定义的属性'地址'”相同的代码可以正常更新其他状态
- c++ - 为什么在 WM_NCCREATE 之后 MDI 子窗口不存在?
- sql - Oracle 查询显示错误“不是 GROUP BY 表达式”
- php - 如果php中的两个值相同,如何显示自动选择下一个值?
- r - Lubridate - 查找间隔和日期之间的重叠时间
- python - 如何为 100000 次迭代优化 python 循环?
- javascript - 如何通过ajax从javascript发送和检索数组
- chisel - 创建具有自定义索引范围的连线
- laravel-5 - 我需要跨多个页面使用用户选择的数据,我可以使用哪个模块 Session 或 Cookie