как мне показать все .jpg картинки в папке, но я хочу только фотографии с сегодняшнего дня

Надеюсь, я смогу проясниться. У меня есть веб-камера, которая каждую секунду отправляет изображение на мой сайт. Все они суммируются в следующей папке:

(IPCAM)_0_20130413145714_62.jpg [Year: 2013] [mo: 04] [Day: 13] [Hour: 14] [min: 57] [Sec: 14] (IPCAM)_0_20130413145719_63.jpg [Year: 2013] [mo: 04] [Day: 13] [Hour: 14] [min: 57] [Sec: 19] (IPCAM)_0_20130413145723_64.jpg [Year: 2013] [mo: 04] [Day: 13] [Hour: 14] [min: 57] [Sec: 23] (IPCAM)_0_20130413145727_65.jpg [Year: 2013] [mo: 04] [Day: 13] [Hour: 14] [min: 57] [Sec: 27] 

Вы можете увидеть шаблон в именах изображений? Я использую этот скрипт для их отображения:

 <?php $dirname = "./"; $images = glob($dirname."*.jpg"); foreach($images as $image) { echo '<img src="'.$image.'" /><br />'; } ?> 

Я хотел бы иметь календарь, чтобы я мог выбрать [Day: **] и получить все снимки, сделанные в тот день.

Надеюсь, кто-то может помочь мне с этим кодом.

Ты пробовал

 $dayInQuestion = '20130413'; glob($dirname."(IPCAM)_0_".$dayInQuestion."*.jpg"); 

с вашей датой?

Ссылка: руководство PHP для получения дополнительных опций, например, http://www.php.net/manual/en/function.glob.php#110340

Сделайте строку на сегодня, а затем сопоставьте ее с вашими изображениями. Поэтому вместо того, чтобы вытаскивать все изображения (*), мы сопоставляем имя изображения с нашей сегодняшней строкой:

 date_default_timezone_set('America/New_York'); $today = date("Ymd"); $files = glob($dirname.'*'.$today.'*.jpg'); 

Я не тестировал это, но:

 <?php $dirname = "./"; $images = glob($dirname."*.jpg"); $date = "[Year: ".$_GET['y']."] [mo:".$_GET['m']."] [Day: ".$_GET['d']."]"; foreach($images as $image) { if (strpos($image,$date) !== false) { echo '<img src="'.$image.'" /><br />'; } } ?> 

запрос идет:? y = 2013 & m = 12 & day = 13

Пока фотографии используют последовательную схему именования, вы должны иметь возможность фильтровать их по имени файла, используя strstr. Что-то вроде этого, может быть:

 <?php $dirname = "./"; $daynum = "13"; $images = glob($dirname."*.jpg"); foreach($images as $image) { if (strstr($image, 'Day' + $daynum)) { echo '<img src="'.$image.'" /><br />'; } } ?> 

вот мой ответ, используя jQuery date picker:

рабочий пример можно найти здесь

выберите 13 апреля 2013 года в примере

 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>StackOverflow Answer</title> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" /> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css" /> <script> $(function() { $( "#datepicker" ).datepicker({ onSelect: function(date, instance){ window.location = "?date="+date; } }); }); </script> </head> <body> <p>Date: <input type="text" id="datepicker" /></p> <?php if($_GET) { $dirname = "IPCam/"; $images = glob($dirname."*.jpg"); $date = str_replace('/', '', $_GET['date']); $day = substr($date, 2, 2); $month = substr($date, 0, 2); $year = substr($date, 4, 4); $formattedDate = $year.$month.$day; foreach($images as $image) { if(strpos($image, $formattedDate)) { echo '<img src="'.$image.'" /><br />'; } } } ?> </body> </html>