Понедельников НЕТ!
Регистрация или вход Регистрация или вход Избранное на этом сайте | Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней
Скачать SSDForums
Скачать SSDForums 1.0.1 Скачать SSDForums 1.0.1
Скачать SSDForums 1.0.1 SP1 Скачать SSDForums 1.0.1 SP1
Скачать SSDForums 1.0.1 SP2 Скачать SSDForums 1.0.1 SP2
SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro
SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro
Jewelry Сase Team
Скачать Ruby Chat 0.1.1 Скачать Ruby Chat 0.1.1
Меню
Главная
Форум
Магазин цифровых товаров

Новости
Подписка на новости
Темы новостей
Добавить новость

Каталог файлов
Карта файлового архива
Публикации

Опросы
Анкета пользователя
Чат

BestMaker
Викторина
Архив новостей
Карманный оракул
Поиск по сайту с помощью Яндекс
Поиск по сайту с помощью Google
Фото дня
Для души
Погода на 3 дня
IndexCat
IndexTop
Map_Pages
Форум -> PHP, JS, MySQL -> Помогите разобраться с датами в PHP
Помогите разобраться с датами в PHP
Daigo Дата: 30.04.2009, в 09:38 | Сообщение №1
Daigo
Новичок
Пользователь №: 486
Сообщений: 18

Прошу помощи, хотя бы в виде подсказки по следующему вопросу:
Вытаскиваю из базы (поле типа DateTime) дату, мне нужно проверить на сколько стара эта дата, т.е. сколько времени прошло от этой даты до настоящего времени.
С легкостью решал эту проблему на других языках программирования, а в PHP не получается.
Serg_pnz Дата: 30.04.2009, в 11:17 | Сообщение №2
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2243

Daigo, в каком формате вытаскиваешь дату? 1234567890 или 2009-04-30?

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
Daigo Дата: 04.05.2009, в 09:19 | Сообщение №3
Daigo
Новичок
Пользователь №: 486
Сообщений: 18

Serg_pnz, 2009-04-30, а как ее вытащить в "1234567890", я так понимаю что это кол-во чего-то от какой-то даты/точки?
Serg_pnz Дата: 04.05.2009, в 09:58 | Сообщение №4
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2243

http://www.php.su/functions/?mktime

Т.е. тебе надо 2009-04-30 эксплодить по дефису и обрабатывать mktime, на выходе получишь "1234567890"

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
Sunvas Дата: 04.05.2009, в 15:11 | Сообщение №5
Sunvas
Профи
Пользователь №: 181
Сообщений: 554

Цитата
.е. тебе надо 2009-04-30 эксплодить по дефису и обрабатывать mktime, на выходе получишь "1234567890"

Зачем такие извращения? О_О Можно же проще:
PHP - Код
1
2
3
<?php
SELECT TO_DAYS
(NOW() - `date`) ...
?>
Daigo Дата: 05.05.2009, в 14:17 | Сообщение №6
Daigo
Новичок
Пользователь №: 486
Сообщений: 18

Sunvas,
PHP - Код
1
2
3
<?php
SELECT TO_DAYS
(NOW() - `date`) ...
?>

Так не хотелось бы делать, т.к. целью является проставление признака новой статьи в модуле pages (Совсем новая, недельной давности и месячной).
Соответственно это три дополнительных запроса на каждой страничке сайта.
Цитата
.е. тебе надо 2009-04-30 эксплодить по дефису и обрабатывать mktime, на выходе получишь "1234567890"

Спасибо, попробую разобраться.
Serg_pnz Дата: 05.05.2009, в 14:53 | Сообщение №7
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2243

Daigo, есть же стандартная функция в слаеде по этому поводу new_graphic

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
Sunvas Дата: 05.05.2009, в 15:27 | Сообщение №8
Sunvas
Профи
Пользователь №: 181
Сообщений: 554

Daigo, ничего не понимаю. Если нужно делить по признаку, то все просто:
Код
1
SELECT TO_DAYS(NOW() - `date`)

Далее:
PHP - Код
1
2
3
4
5
6
7
8
9
10
11
<?php
list($d,...)=$db->sql_fetchrow();
if(
$d>10)
//Старая
elseif ($d>5)
//Больше недели
elseif($d>1)
//Новая
else
//Совсем новая
?>
patriot Дата: 05.05.2009, в 16:03 | Сообщение №9
patriot
Участник
Пользователь №: 349
Сообщений: 92

есть в PHP такая функция:

int strtotime ( string time [, int now] )

Первым параметром функции должна быть строка с датой на английском языке, которая будет преобразована в метку времени относительно метки времени, переданной в now, или текущего времени, если аргумент now опущен. В случае ошибки возвращается -1.

PHP - Код
1
2
3
<?php
$date
=strtotime('2009-04-30');
?>


Функция strtotime() использует GNU формат даты

Sunvas, вариант, конечно.. но в случае, когда также нужно вывести саму дату, придется возвращать дополнительное поле, что увеличит трафик (в теории, конечно - реально вряд ли это будет заметно)

Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!


Главная | Форум | Новости | Подписка на новости | Темы новостей | Добавить новость | Каталог файлов | Карта файлового архива | Публикации | Опросы | Анкета пользователя | Чат | BestMaker | Викторина | Архив новостей | Карманный оракул | Поиск по сайту с помощью Яндекс | Поиск по сайту с помощью Google | Фото дня | Для души | Погода на 3 дня | IndexCat | IndexTop | Map_Pages | Весь Оракул


Генерация страницы: 0.055 сек. и 17 запросов к базе данных за 0.025 сек.
Web site engine code is Copyright © 2006 by SLAED CMS. All rights reserved.