php中的日差
这给了我15562和31,我是不是遗漏了什么?我只需要打印出这几天的差异 编辑:如果搜索此问题的任何人碰巧也遇到此问题,则这是最终的输出:php中的日差,php,mysql,Php,Mysql,这给了我15562和31,我是不是遗漏了什么?我只需要打印出这几天的差异 编辑:如果搜索此问题的任何人碰巧也遇到此问题,则这是最终的输出: number of days: 15562 edited date: 31 number of days: 15562 edited date: 31 number of days: 15562 edited date: 31 $currentDate=time(); 回声“当前时间:”; echo$currentDate; 回声“”; $edi
number of days: 15562
edited date: 31
number of days: 15562
edited date: 31
number of days: 15562
edited date: 31
$currentDate=time();
回声“当前时间:”;
echo$currentDate;
回声“”;
$editedPrintDate=strotTime($printDate);
echo“打印日期:”;
echo$editedPrintDate;
回声“”;
$numberDays=楼层(abs($currentDate-$editedPrintDate)/60/60/24);
回声“天数:”;
回声地板(天数);
回声“”;
您只需计算两个日期之间的秒数,然后除以天数:
$currentDate = time();
echo "Current Time:";
echo $currentDate;
echo "</br>";
$editedPrintDate = strtotime($printDate);
echo "Print Date:";
echo $editedPrintDate;
echo "</br>";
$numberDays = floor(abs($currentDate - $editedPrintDate)/60/60/24);
echo "Number of Days:";
echo floor($numberDays);
echo "</br>";
然后,可以使用for循环检索日期:
$numDays = abs($smallestTimestamp - $biggestTimestamp)/60/60/24;
$numDays=abs($smallestTimestamp-$biggestTimestamp)/60/60/24;
对于($i=1;$i<$numDays;$i++){
回显日期('Y m d',strotime(“+{$i}day”,$smallestimstamp))。
;
}
同样,如果您不知道哪个时间戳最小,可以使用
min()
函数(strotime中的第二个参数)。我想您也可以将时间戳转换为DateTime对象,然后使用您的代码将永远无法工作
date()
需要时间戳,表示0为1970年1月1日的时间点。您不能传入任意数字(您的/606024值),因为它不再是unix时间戳,而是表示“几乎一周”的不可靠数字
如果您想知道经过的天数,只需在MySQL中进行计算,就可以为您解决这个问题:
$numDays = abs($smallestTimestamp - $biggestTimestamp)/60/60/24;
for ($i = 1; $i < $numDays; $i++) {
echo date('Y m d', strtotime("+{$i} day", $smallestTimestamp)) . '<br />';
}
一天有86400秒,而不是606024。$printDate是存储在int类型列中的数字时间戳还是真正的mysql时间戳?为什么是606024而不是86400(24*3600)?对不起,各位,我复制粘贴时出错了数字应该是60*60*24对不起,复制粘贴时出错了数字应该是60*60*24,但我还想提到的是,这是一个时间戳,正在从数据库中传递。这是一个示例:2012-08-09 11:34:02我正在尝试找出是否有一种减去这些值的方法,因为在我使用的mysql数据库中,UNIXTIMEah没有选项。这是一个字符串,不能从time()值中减去它。在mysql中使用
unix\u timestamp()
将yyyy-mm-dd hh:mm:ss类型的字符串转换为标准的unix时间戳,或者在php中使用strotime()
。你真是个天才!这东西工作得很好!如果有人想知道我做了什么,那么这里是最后的格式:
$numDays = abs($smallestTimestamp - $biggestTimestamp)/60/60/24;
for ($i = 1; $i < $numDays; $i++) {
echo date('Y m d', strtotime("+{$i} day", $smallestTimestamp)) . '<br />';
}
SELECT DATEDIFF(now(), FROM_UNIXTIME(yourtimestampfield)) AS days