在每个日期差异后插入一个小帽子

时间:2013-10-21 00:14:24

标签: php sql datediff

我正在使用循环来获取数据库中的信息,我希望得到此循环中日期之间的差异。我现在可以告诉你它的样子(带循环的SQL查询):

$get_photos = "SELECT * FROM photos ORDER BY exif_taken DESC";

foreach($sql->query($get_photos) AS $photo) {
    echo $photo['exif_taken'];
}

您可以在此处查看循环(已删除)。您可以在网站循环中看到的前2张图片,请参阅2013-10-20。接下来的四张照片是在10天前(2013-10-10)拍摄的。下一张图片拍摄于2013-06-08,最后一张图片拍摄于2013-06-06。

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

image-1 image-2 新日期 - 小型大写图像-3图像-4图像-5图像-6 新日期 - 小型大写图像-7图像 - 8 新日期 - 小型上限 image-9

我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

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

$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_taken变量包含的不仅仅是dd / mm / yyyy格式,那么您可能希望将其设置为dd / mm / yyyy,以便它在数组中匹配:

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