我正在尝试报告用户订阅还剩下多少小时。我使用的日期/时间格式为Y-m-d H:i:s
。基本上,我记录用户在数据库中付款的时间,并假设该计划将从付款之日起1天到期。
在计算当前时间和结束日期之间的时差时,我的逻辑有什么问题?
$start_time = strtotime($callback->_time_paid());
$end_time = 0;
$end_time = strtotime(date('Y-m-d H:i:s', strtotime($callback->_time_paid().(' +'.$days. 'day'))));
$static = ($end_time - $start_time);
$time = (strtotime(date('Y-m-d H:i:s')) - $static) - $static;
print_r($time);
$hours = floor($time / 3600);
$minutes = floor($time / 60);
答案 0 :(得分:0)
不知道为什么要减去两次以秒为单位的差值,或者不确定转换的数学公式,但我还没有喝咖啡。
这是对我有用的-如果将来有时间戳记,请从数据库获取时间戳。
<?php
$end_time = strtotime(date('Y-m-d H:i:s', strtotime($callback->_time_paid().(' +'.$days. 'day'))));
if($end_time>(time())){
// how many seconds are we dealing with?
$seconds=$end_time-(time());
$hours=(int)($seconds/3600);
$min=(int)(($seconds%3600)/60);
$sec=(($seconds%3600)%60);
print($hours." ".$min." ".$sec);
}else{
print("Expired already");
}
?>