За последние 24 часа нас посетили 17499 программистов и 1728 роботов. Сейчас ищут 1015 программистов ...

Время на сервере

Тема в разделе "PHP для новичков", создана пользователем RomanCasper, 13 янв 2015.

  1. RomanCasper

    RomanCasper Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    46
    Симпатии:
    1
    Каким образом отследить время "на сервере". То есть у меня есть в БД столбец с типом данных datetime , и значением ( 2015-01-13 18:00:00 ) . Я хочу сделать функцию которая будет менять значение в ячейке если эта дата уже прошла.
    Коротко говоря, как сравнить время в БД со временем сервера?
    p.s.
    не знаю есть ли понятие "время сервера", но думаю смысл понятен, то есть чтобы отталкивалось не от времени на компьютере пользователя.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    mysql NOW() и аналоги, просто прочитай книгу по mysql свежую и документацию
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Серверное время это скорее SYSDATE(), а NOW() имеет привязку вроде к текущему часовому поясу.
     
  5. RomanCasper

    RomanCasper Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    46
    Симпатии:
    1
    Сделал так:
    Код (Text):
    1. if (strtotime($row[date])<strtotime(now)) {  }
    на локальном сервере вроде нормально работает, часовой пояс не тот что на компьютере, то что я и хотел. Надеюсь что у всех пользователей будет одинаковый часовой пояс.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    штоета?
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    это писец - по форме и по содержанию
     
  8. RomanCasper

    RomanCasper Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    46
    Симпатии:
    1
    Я почитал на других сайта как сравнить время, и кроме того как переделать значения в метку Unix и сравнить между собой.
    $row[date] - значение из базы данных
    NOW - текущее время
    Все работает, как ни странно)

    Добавлено спустя 2 минуты 16 секунд:
    Пока только так могу, не все сразу супер-пупер программистами рождаются. Или по другому говоря "на ошибках учатся"
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а, я понял. Ну ты кавычки расставь, и вместо strtotime('now') достаточно time(), а вместо strtotime($row['date']) можно из бд сразу брать числом через UNIX_TIMESTAMP()
     
  10. RomanCasper

    RomanCasper Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    46
    Симпатии:
    1
    Завтра с утра обязательно исправлю. Только не ругайтесь)
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    да всем пофиг, никто не ругается.
    включи вывод сообщений об ошибках php, а то так балбесом и останешся.

    ни php, ни mysql не в курсе какой часовой пояс у пользователя. на стороне сервера ты всегда в одном поясе.