使用 PHP 从 Mysql 检索 Mktime 值
Retrieving Mktime values from Mysql using PHP
在我的网站上,我试图制作一个倒数计时器。如果我告诉它列的值并且它在测试 php 页面上工作,则计时器的相同代码会工作。问题是没有从 mysql 数据库中直接读取 mktime 值。但是,如果我将要输出的列放在 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 页面上工作,则计时器的相同代码会工作。问题是没有从 mysql 数据库中直接读取 mktime 值。但是,如果我将要输出的列放在 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]);
希望对您有所帮助。但是请不要将时间值保存为数据库中的字符串。阅读手册中的其他可能性。