0

我浏览了网站上的问题,我认为我遇到的问题更深入一些。我试过使用 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 具有条目被放入数据库的日期。两者都已格式化,并且回显可以正确打印出来。第三个回声是由于某种原因减法变为 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 
4

2 回答 2

2

date()函数根据您输入的格式返回一个字符串。您不能对字符串执行算术运算。

您应该做的是首先计算从数据库中检索的时间戳(整数)的差异,time()然后才使用date()函数格式化该差异。

(注意:您也应该在数据库中以 unix 纪元整数格式存储日期和时间。)

于 2012-08-08T13:15:44.917 回答
1

你在找这个吗?如何使用PHP计算两个日期之间的差异

于 2012-08-08T14:50:45.013 回答