在我的网站上,我尝试建立一个倒数计时器。如果我告诉计时器该列的值,则该计时器的相同代码将起作用,并且可在测试php页面上使用。问题是无法从mysql数据库中正确读取mktime值。但是,如果我将该列输出到回显的内部,则输出会很好。包含数据的列称为过期。我从mysql加载的其他值在他的回声中,但是所有连接语句都是在调用任何函数之前进行的。我正在使用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中格式化expire列的方式标准为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/