在我的网站上,我正在尝试制作一个倒计时器。如果我告诉它列的值并且它在测试 php 页面上工作,那么计时器的相同代码就会工作。问题是 mktime 值没有从 mysql 数据库中正确读取。但是,如果我将列输出到 echo 中,它会输出良好。包含数据的列称为过期。我从 mysql 加载的其他值位于 echo 内部,但是所有连接语句都是在我调用任何之前进行的。我正在使用 mysqli_fetch_array 来调用值。
$target = mktime($row['expire']);
$today = time();
$difference = $target-$today;
$hours = $difference/3600;
$minutes = ($hours-floor($hours))*60;
echo('ENDS IN: '.floor($hours).' Hrs '.floor($minutes).' Mins');
Yes the document is HTML that it gets included into
我在 mysql 中格式化过期列的方式是标准的 Hr,Min,Sec,MM,DD,YYYY。该列的实际内容为“21,0,0,7,12,2017”
提前致谢,大卫。
最佳答案
问题是,您从数据库的 $row['expire']
中获取了一个字符串。但 mktime() 是一个纯整数函数。因此,首先您需要一种解决方法来分解字符串并将其转换为整数,然后才能与 mktime()
一起使用。
请从代码中删除以下行:
$target = mktime($row['expire']);
试试这个:
$timeparts = array_map('intval', explode(',', $row['expire']));
$target = mktime($timeparts[0],$timeparts[1],$timeparts[2],$timeparts[3],$timeparts[4],$timeparts[5]);
希望对您有帮助。但请不要将时间值作为字符串保存在数据库中。阅读手册中的其他可能性。
关于php - 使用 PHP 从 Mysql 检索 Mktime 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45069640/