【发布时间】:2014-09-05 05:50:40
【问题描述】:
我正在将我的数据库中的截止时间(采用 24 小时格式(例如 3:00 = 15:00))与现在的时间进行比较。
例如,如果学生未能按时提交,则上传链接将显示为灰色。
日期比较没问题,我的问题是时间。
这是我当前的代码:
$date = date("Y-m-d");
$time = strtotime(date('G:i:s'));
$deadtime = strtotime($r['upload_deadtime']);
/*------$deadtime = 15:00:00 ---------*/
if(date($r['upload_deadline']) >= $date && $deadtime > $time){
echo '<td><a href="stud_prep.php">upload</a></td>';
}
else{
echo '<td><a title="your too late! haha!" style="color:grey">upload</a></td>';
}
更新:让我们忘记日期比较吧,我想说的是如何比较我的截止时间(采用 24 小时格式(如 3:00:00 = 15:00:00 )) 到现在。
这是我当前的代码:
$time = strtotime(date('G:i:s')); /*which returns 23:15:42 instead of 14:15:42 */
$deadtime = strtotime('15:00:00');
if($deadtime > $time){
echo '<td><a href="stud_prep.php">upload</a></td>';
}
else{
echo '<td><a title="your too late! haha!" style="color:grey">upload</a></td>';
}
【问题讨论】:
-
您能打印出您首先比较的日期并验证您得到了您想要的吗?如果您只需要验证发布时间小于当前时间,不知道为什么必须满足两个比较。
-
$r['upload_deadline']的值是多少? -
不管它持有什么价值,这种比较都是不对的
date($r['upload_deadline']) >= $date -
我明白你的意思,你只需要比较时间而不是日期,
strtotime会将其转换为从 1970 年 1 月 1 日开始考虑的 unix 时间戳!所以你只需要没有日期的时间!!请在SO 上试试这个答案 -
/*which returns 23:15:42 instead of 14:16:42 */你设置时区了吗?