2013-10-21 63 views
0

我正在使用從我的數據庫中獲取信息的循環,並且希望獲得此循環中日期的差異。我可以告訴你它的外觀像此刻(與環的SQL查詢):在每個日期差別後插入一個小寫字母

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

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

這裏你可以看到在行動中環(刪除)。您可以在網站上的循環中看到前兩張圖片,取材於2013-10-20。接下來的四張照片是在10天前拍攝的(2013-10-10)。接下來的兩張照片拍攝於2013-06-08,最後一張照片拍攝於2013-06-06。

我想插入一個小圖片之間的日期差異的圖像。但要做到這一點,我需要得到圖像之間的日期差異,這是我不知道該怎麼做。讓我告訴你我的意思。

圖像-1圖像-2 新的日期 - 小盤圖像-3-圖像-4圖像-5-圖像-6- 新的日期 - 小盤圖像-7圖像-8 新的日期 - 小盤圖像-9

我該如何做到這一點?

+0

值'$ photo ['exif_t​​aken']'是unix時間戳值嗎?就像在頁面上看到的「1382314794」一樣? – hjpotter92

+0

'exif_t​​aken'在數據庫的'DATETIME'中 – Erik

回答

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'])); 
+0

謝謝!但'$ difference_in_days'在每個圖像的前一個輸入後的0天打印。 'exif_t​​aken'在數據庫的'DATETIME'中。我想檢查每張圖片之間的日期差異,以便在日期不同時輕鬆添加小型圖片。 – Erik

+0

更新 - 我有一個變量拼寫錯誤 –

+0

謝謝:)做到了。 – Erik

相關問題