我正在使用循环来获取数据库中的信息,我想了解此循环中日期之间的差异。我可以向您展示它目前的外观(带有循环的 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。
我想在日期差异的图像之间插入一个小写字母。但是要做到这一点,我需要获取图像之间的日期差异,而且我不知道该怎么做。让我告诉你我的意思。
图-1 图-2 新日期 - 小写字母 图-3 图-4 图-5 图-6 新日期 - 小写字母 图-7 图-8 新日期 - 小写字母 图-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_taken
变量包含的不仅仅是 dd/mm/yyyy 格式,您可能希望将其设为 dd/mm/yyyy,以便它在数组中匹配:
$original_date = date('d/m/Y', strtotime($photo['exif_taken']));