php - 倒计时时间到结束日期
问题描述
我正在尝试报告用户订阅的剩余小时数。我使用的日期/时间格式是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);
解决方案
不知道为什么你要减去两次以秒为单位的差异,或者你的转换数学,但我还没有喝足够的咖啡。
这对我有用 - 从数据库中获取您的时间戳,如果它在未来,那么做一些数学运算。
<?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");
}
?>
推荐阅读
- powerbi - 在“编辑交互”中,过滤器和突出显示有什么区别?
- airflow - 如何杀死气流调度程序和网络服务器?
- javascript - Tensorflow 无法重塑图像
- c - 在单独的函数中对 C 中的数组进行冒泡排序
- django - 无法在生产中通过邮件拦截 404 错误(debug=False)
- java - Spring Boot 反应式和 GraalVM java.lang.NoClassDefFoundError:无法初始化类 reactor.netty.http.client.HttpClientSecure
- postgresql - Postgresql - 如果没有满足多对多关系中的条件,则选择
- java - OSError: [WinError 126] JVM DLL not found - 无法理解问题
- python - 在 Python 3 中从文本文件(非列表)中删除空字符串
- java - 如何使用 RequestSpecBuilder 放心地发送路径参数?