| |
|
|
| | Временем создание файла выстпает имя, например:
$str="gr_20070421234638_002273";
gr_20070421191555_001305
gr_20070421024537_001282
gr_20070421001805_002277
|
На более понятный вид это переводит регулярное выражение.
$pattern = '|gr_(.{4})(.{2})(.{2})(.{2})(.{2})(.{2})_(.{6})|i';
preg_match($pattern, $str, $matches);
list($all, $year, $month, $day, $hour, $min, $sec, $id_game) = $matches;
|
Допустим передомной стоит задача вывести игры которые сыграно только сегодня, я сделал слудещее, добавил переменную date_now которая содердит текущий день, номер месяца, год. И собирал переменную $date_game в которой бы хранился день, месяц и год, только уже данного файла.
$date_now = date("j.m.Y");
$date_game = ltrim($day, "0").".".$month.".".$year;
|
Ну и после просто сравнивал условием.
if($date_now == $date_game) {<code>}
|
Но после у меян возникла проблемма сделать что бы допустим отображались игры за:
Последние 24 часа.
Которые сыграны вчера.
На этой недели.
В этом месяце.
И что то я не могу придумать ничего путного как это осуществить. Желательно это сделать только заменой переменной $date_game, и не очень меняя условие. | |
| |
|
|
| |
|
|
| |
для: Бамси
(23.04.2007 в 17:15)
| | | up. | |
| |
|
|
| |
|
|
| |
для: Бамси
(23.04.2007 в 17:15)
| | | хоть up хоть down, в такой постановке (не меняя условие ) задачу не решить. | |
| |
|
|
| |
|
|
| |
для: Trianon
(24.04.2007 в 21:13)
| | | Вы правы, наверно я загнул... ТОгда пожалуй можете менять и условие и значения.
Кроме
$str="gr_20070421234638_002273";
gr_20070421191555_001305
gr_20070421024537_001282
gr_20070421001805_002277
|
| |
| |
|
|
| |
|
|
| |
для: Бамси
(25.04.2007 в 08:55)
| | | а можно просто составить строку граничных условий времени по принципу, по которому строятся имена файлов
dt1 = gr_ГГГГММДД0000_000000 - для нижней границы
dt2 = gr_ГГГГММДД9999_999999 - для верхней границы
и тупо проверять список файлов по условию dt1 <= dt_file <= dt2
и не надо никаких преобразований постоянных для отбора... достаточно провести только два для построения строк и потом тупо выбирать из списка файлов нужные и только с ними потом выполнять преобразования | |
| |
|
|
| |
|
|
| |
для: Бамси
(23.04.2007 в 17:15)
| | | Нужно вычислить граничные точки требуемого диапазона,
преобразовать функцией mktime таймштамп в числовой вид,
и сравнивать его с граничными точками.
Для "последние 24 часа"
$time_game = mktime(......);
$timeb = time();
$timea = $timeb - 24*60*60;
if($timea <= $time_game && $time_game <= $timeb)
code();
|
| |
| |
|
|
| |
|
|
| |
для: Trianon
(25.04.2007 в 11:20)
| | | Чего то я не понял чего с mktime делать. | |
| |
|
|
| |
|
|
| |
для: Бамси
(25.04.2007 в 16:46)
| | | какие у нее параметры? | |
| |
|
|
| |
|
|
| |
для: Бамси
(25.04.2007 в 16:46)
| | | mktime("часы","минуты","секунды","месяц","день","год"); | |
| |
|
|
| |
|
|
| |
для: Trianon
(25.04.2007 в 11:20)
| | | С этим разобрался, а как допустим сделать сегодня, или вчера? Вместо последние 24 часа. | |
| |
|
|
| |
|
|
| |
для: Бамси
(25.04.2007 в 18:26)
| | | сегодня, это время от момента
сегодняшний_день, сегодняшний_месяц, сегодняшний_год, 0 часов, 0 минут, 0 секунд
по момент
сегодняшний_день, сегодняшний_месяц, сегодняшний_год, 23 часа, 59 минут, 59 секунд
и первый и второй момент вычисляется через mktime()
сегодняшний год = date('Y');
дальше сообразите? | |
| |
|
|