Надеюсь, я смогу проясниться. У меня есть веб-камера, которая каждую секунду отправляет изображение на мой сайт. Все они суммируются в следующей папке:
(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>