首页 > 解决方案 > 倒计时时间到结束日期

问题描述

我正在尝试报告用户订阅的剩余小时数。我使用的日期/时间格式是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);

标签: phpdate

解决方案


不知道为什么你要减去两次以秒为单位的差异,或者你的转换数学,但我还没有喝足够的咖啡。

这对我有用 - 从数据库中获取您的时间戳,如果它在未来,那么做一些数学运算。

<?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");
}

?>

推荐阅读