我浏览了网站上的问题,我认为我遇到的问题更深入一些。 我尝试过使用 difftime() 函数,但它对我来说结果为 0。
到目前为止,这就是我所做的
$currentDate = time();
//echo $printDate;
//echo $currentDate;
$editedDate = date("Y-m-d ", strtotime($printDate));
$editedCurrentTime = date("Y-m-d ", $currentDate);
echo "$editedDate </br>";
echo "$editedCurrentTime </br>";
$timeDiff = ($editedCurrentTime - $editedDate);
echo "$timeDiff </br>";
$numberDays = floor($timeDiff/(60*60*24));
我首先节省时间();在 currentDate 中,printDate 具有将条目放入数据库的日期。两者都已格式化,并且回显按应有的方式正确打印出来。第三个 echo 是由于某种原因减法变成 0 的地方。当我尝试 strtotime($currentDate) 时,editedCurrentTime 的回显变为 1970-01-01。我猜这是一个小问题,因为它们的格式不同,但它仍然困扰着我。任何帮助将不胜感激。
这是输出的片段:
2012-08-01
2012-08-08
0
2012-08-01
2012-08-08
0
2012-08-01
2012-08-08
0
2012-08-02
2012-08-08
0
最佳答案
date()
函数根据您输入的格式返回一个字符串。您无法对字符串执行算术运算。
您应该做的是,首先计算从数据库检索的时间戳(整数)和time()
的差异,然后才格式化该差异使用 date()
函数。
(注意:您也应该以 unix 纪元整数格式将日期和时间存储在数据库中。)
关于php - 尝试使用(当前 php 日期 - mySQL 时间戳 = 天数差异)进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11865207/