База данных работа с Датой

Тема в разделе "PHP", создана пользователем nmDimas2, 31 янв 2011.

Модераторы: latteo
  1. nmDimas2

    nmDimas2 Постоялец

    Регистр.:
    20 апр 2010
    Сообщения:
    78
    Симпатии:
    12
    сохраняется информация и надо сделать так чтоб если редактировать эту информацию в течение двух недель от даты ее создание то все нормально а если редактирование происходить уже поже двух недель то в одном из столбцов будет метка что редакция была сделана поже двух недель

    Как это реализовать с помощи PHP
     
  2. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Загоняешь в один из столбцов (например time_created) дату создания записи в формате time()

    PHP:
    mysql_query("INSERT INTO tab1 SET `bla`='".$bla."', `bla1`='".$bla1".', ..... `time_created`='".time()."' ");
    Далее при редактировании записи проверяешь , больше ли разница между датой создания и редактирования чем 2 недели или нет...

    PHP:
    $query=mysql_query("SELECT  time_created FROM tab1 WHERE .... LIMIT 1");
    if (
    $query+(60*60*24*14)<=time()){ //если разница больше 2х недель
    //то при сохранении записи после редактирования вносим отметку времени в столбец time_edit
    mysql_query("INSERT INTO tab1 SET `bla`='".$bla."', `bla1`='".$bla1".', ..... `time_edit`='".time()."' ");
    }
    при всём этом постоянно проверяешь пустая ли ячейка time_edit, если пустая то ничего не выводишь, а если есть в ней метка времени, то выводишь соответствующую запись:
    PHP:
    echo "Редактировалось:"date("Y.m.d H:i:s"$query['time_edit']);
     
    nmDimas2 нравится это.
  3. nmDimas2

    nmDimas2 Постоялец

    Регистр.:
    20 апр 2010
    Сообщения:
    78
    Симпатии:
    12
    $query+(60*60*24*14)<=time()

    $query значения даты при создание. добавляем 14 дней что получаем максимальную дату после чего мы проверяем и тут вопрос такой . time() это что типа время автоматически или тут какой то подвох что он такое какой принцип его использования
    или мануал хороший
     
  4. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    М-м-м-м... батенька а вы с РНР давно знакомы?
    time() это стандартная функция РНР!Возвращает текущую метку времени... Возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) до текущего времени.
     
  5. nmDimas2

    nmDimas2 Постоялец

    Регистр.:
    20 апр 2010
    Сообщения:
    78
    Симпатии:
    12

    php.su это канешно хорошо но часто не понимаешь смысл того что ужимают в два слова но спс http://phpclub.ru/detail/article/date_stuff это статья мне помогла разобраться time().
    А раздел так и называется для новичков
    Очень благодарен за советы и способ решения некогда не имел дело с временем в php
     
  6. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Небольшая рекомендация... для того, что бы легче было осваивать РНР найдите на просторах интернета и скачайте себе на комп справочник по РНР в формате chm например php_manual.chm (сейчас они и на русском языке есть) Там как правило разбито всё по тематическим разделам и есть удобный поиск... найти описание любой непонятной функции не составит труда, да и сэкономит трафик в интернете :)
     
    nmDimas2 нравится это.
  7. qwtqwt

    qwtqwt Писатель

    Регистр.:
    24 июл 2009
    Сообщения:
    2
    Симпатии:
    0
    Поставь поле доп. флаг
     
  8. lbarmen

    lbarmen Создатель

    Регистр.:
    11 апр 2010
    Сообщения:
    32
    Симпатии:
    0
    Нету нужных сообщений что бы создать тему, по этому пишу тут, потому как вопрос похож.

    Я хочу что бы скрипт удалял личные сообщения которые старше 60 дней. Но тут у меня возникла проблема, потому как время в unix формате.
    Но получилась пока что ...:
    PHP:
    $db->query("SELECT date FROM " PREFIX "_pm");

    while (
    $row $db->get_array()){
        
    $test $row['date'] - 5259486;
    }

    $db->query("DELETE FROM " PREFIX "_pm WHERE date < ($test)");
    он не удаляет старые сообщения и я не знаю как исправить.
     
  9. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    PHP:
    $db->query("DELETE FROM " PREFIX "_pm WHERE date < ".(mktime()-5259486)."");
     
    lbarmen нравится это.