php - 尝试使用(当前 php 日期 - mySQL 时间戳 = 天数差异)进行计算

标签 php mysql

我浏览了网站上的问题,我认为我遇到的问题更深入一些。 我尝试过使用 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/

相关文章:

javascript - 如何为 PayPal Express Checkout 配置 IPN?

php - 在 composer 中跳过自动加载文件生成?

php - 拉拉维尔 5.4 "npm run dev"

mysql - MariaDB/MySQL 表加密

mysql - 在 mysql 中插入行时锁定

php - cURL 返回空字符串

php - 在 double 上调用成员函数 first()

mysql - 将数组插入到 MYSQL 表字段值和关系中

java - 在 Jmeter Junit 测试的设置中使用 JDBC

php - 根据下拉菜单的结果获取表字段(从另一个表字段填充)