我真的不明白日期和时间是如何在php中格式化的,以便在数学公式中使用。我的目标是这样;
从数据库中获取日期和时间;
// Get array for times in
$sth = mysqli_query($conn,"SELECT * FROM ledger ORDER BY ID");
$timeins = array();
while($r = mysqli_fetch_assoc($sth)) {
$timeins[] = $r["timein"];
//OR
array_push($timeins, $r['timein']);
}
然后找到当前时间和数组中变量$timeins[0]之间的距离,然后将分钟、小时和天的差值放在单独的简单变量中以备以后使用。这些变量将在if语句中单独使用,以确定此人是否已经过了一定的时间。
edit:从db返回的日期格式是mysql的默认时间戳格式。e、 g.2018-08-06 17:38:37。
3条答案
按热度按时间cig3rfwq1#
也可以在sql中执行datetime操作,以获取两个datetime/时间戳值(以天、小时、分钟为单位)之间的差异。。。我们可以使用select列表中的表达式,将结果作为resultset中的列返回。
抛弃
SELECT *
模式,并指定需要返回的表达式的显式列表:jjjwad0x2#
您应该使用php中的datetime类来执行任何日期操作。可以使用将mysql格式时间的字符串表示形式转换为php datetime对象
此外,您还可以使用无参数的构造函数创建表示当前时间的datetime对象:
要将两个日期之间的差异作为dateinterval对象获取,请使用内置的diff方法:
作为一个完整的例子:
输出:
请注意,您必须使用
$diff->format('%a')
而不是$diff->d
得到两次约会之间的时间,如$diff->d
将不包括这两个日期之间任何月份的天数(在本例中,它将返回3,表示今天是8月6日)。wztqucjr3#
在php中使用datetime类是获得准确结果的最佳方法。
您必须确保db date的输入格式是正确的,在这种情况下,我假设d-m-y h:i:s,然后您也可以以您需要的任何格式输出,如日期文档中所示:http://php.net/manual/en/function.date.php