我正在尝试使用PHP创建一个订阅期为14天的应用程序。在我的数据库表中,我有开始日期和到期日期。我对显示“您的应用程序将在---天后到期”的到期标语有些困惑。
$start = explode(' ', $billing->started_at); // to get the date only
$end = explode(' ', $billing->expires_at);
$date1=date_create($start[0]);
$date2=date_create($end[0]);
$diff=date_diff($date1,$date2);
Session::put('days_left', $diff->format("%R%a days"));
请帮助
答案 0 :(得分:0)
从理论上讲,您的代码应该可以运行,但是您没有告诉我们实际的问题是什么,所以这就是我的解决方法。
如果只想使用时间戳的日期部分进行计算,则可以在创建DateTime
对象之前对其进行格式化。
<?php
$start = new DateTime(date('Y-m-d', strtotime($billing->started_at)));
$end = new DateTime(date('Y-m-d', strtotime($billing->expires_at)));
$difference = $start->diff($end);
echo $difference->format("Your application will expire in %a days.");
或者,您可以直接使用时间戳。取决于您要实现的目标。
<?php
$start = new DateTime($billing->started_at);
$end = new DateTime($billing->expires_at);
$difference = $start->diff($end);
echo $difference->format("Your application will expire in %a days.");
工作示例: http://sandbox.onlinephpfunctions.com/code/417d4691483f53fe083735d257df4fb49b832c58