Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在每个日期差异后插入一个小上限_Php_Sql_Datediff - Fatal编程技术网

Php 在每个日期差异后插入一个小上限

Php 在每个日期差异后插入一个小上限,php,sql,datediff,Php,Sql,Datediff,我正在使用一个循环从我的数据库中获取信息,我想得到这个循环中日期之间的差异。我可以向您展示它目前的样子(带循环的SQL查询): 您可以在此处看到正在运行的循环(已删除)。你可以在网站上看到的前两张图片拍摄于2013年10月20日。接下来的四张照片是在10天前拍摄的(2013-10-10)。接下来的两张照片拍摄于2013年6月8日,最后一张照片拍摄于2013年6月6日 我想在日期不同的图像之间插入一个小的上限。但要做到这一点,我需要得到图像之间的日期差异,这是我不知道怎么做。让我告诉你我的意思 i

我正在使用一个循环从我的数据库中获取信息,我想得到这个循环中日期之间的差异。我可以向您展示它目前的样子(带循环的SQL查询):

您可以在此处看到正在运行的循环(已删除)。你可以在网站上看到的前两张图片拍摄于2013年10月20日。接下来的四张照片是在10天前拍摄的(2013-10-10)。接下来的两张照片拍摄于2013年6月8日,最后一张照片拍摄于2013年6月6日

我想在日期不同的图像之间插入一个小的上限。但要做到这一点,我需要得到图像之间的日期差异,这是我不知道怎么做。让我告诉你我的意思

image-1 image-2新日期-小盘image-3 image-4 image-5 image-6新日期-小盘image-7 image-8新日期-小盘image-9


我如何才能做到这一点?

您想显示照片与之前照片的区别吗?您需要保留已输出的日期数组:

$dates = array();

foreach($sql->query($get_photos) AS $photo) {
    echo $photo['exif_taken'];
    $original_date = $photo['exif_taken'];
    if(!in_array($original_date, $dates))
        $dates[] = $original_date;

    // get the difference between this and the previous
    if(count($dates) > 1) {
        $last_key = count($dates) - 1;
        $previous_date = $dates[$last_key - 1];
        $timestamp_difference = strtotime($original_date) - strtotime($previous_date);
        $difference_in_days = floor($timestamp_difference/(60*60*24));
        echo $difference_in_days . ' days after previous entry';
    }
}
如果
exif\u take
变量包含的不仅仅是dd/mm/yyyy格式,您可能希望将其设置为dd/mm/yyyy,以便在数组中匹配:

$original_date = date('d/m/Y', strtotime($photo['exif_taken']));

$photo['exif_take']
是unix时间戳值吗?如页面上看到的
1382314794
exif_take
在数据库中
DATETIME
谢谢!但是
$difference_in_days
为每个图像打印上一条输入后的
0天
exif_take
位于数据库的
DATETIME
中。我想检查每个图像之间的日期差异,以便在日期不同时可以轻松添加一个小上限。谢谢:)做到了。
$original_date = date('d/m/Y', strtotime($photo['exif_taken']));