На код надо смотреть. В какой момент, как ты определил, что время на час вперёд. Мне, например, база всегда возвращает ровно то, что я туда написал.
Я переменной $time = $_SERVER['REQUEST_TIME']; присвоил временную метку начала запроса. Ну и сразу потом подставил в запрос переменную $time для поля time_activ(int) по сути он должен писать мое время которое у меня, а он на час вперед пишет и сохраняет в базу.
Ну как я и сказал, php не на ту временную зону настроен. https://secure.php.net/manual/ru/datetime.configuration.php#ini.date.timezone
@Dimon2x, зачем? У него просто время на компе на один пояс настроено, а php - на другой, и соответственно, php внутри переводит часы. А, поскольку используется $_SERVER["REQUEST_TIME"], может и веб-сервера часовой пояс не туда настроен, но это я уже не знаю, мне тоже гуглить надо, как перенастроить
не может, а наверняка, php всегда работает со временем сервера, поэтому чтобы не было расхождений, надо перенастраивать время сервера. После последнего перехода на зимние летние времена, + поволжье у нас тоже по своему времени живут, начилась такая бериберда. У меня проблема решена таким образом: берется время, отнимается час в самом скрипте, записывается в таблицу.
php не запрашивает время у веб-сервера, берёт время ОС и переводит в нужный пояс. Но массив $_SERVER заполняется при вызове именно веб-сервером, поэтому я предположил. В своих скриптах я просто не пользуюсь $_SERVER["REQUEST_TIME"]
Да у меня в php.ini стоит другая зона может ли из-за этого время не правильно показывать? --- Добавлено --- @mkramer А чем пользуешься? какими функция если я использую int поля для времени?
Когда мне нужно время, делаю time() и всё. Мне не разу не было важно именно время, когда пришёл запрос, и ни миллисекундой позже
@Dimon2x В файле php.ini на локальном сервере изменил в строке регион поставил на свой. [Date] date.timezone = "Europe/Регион"//Сюда вписал свой регион.
Теперь опять перешел на timestamp) потому что время правильно в базу записывает, да и не только по этому, видно в базе именно время когда запись была добавлена, не приходится переводить время из int формата в нужный вид. Надеюсь она мне пригодится)
PHP: $date = new DateTime('', new DateTimeZone('Europe/Moscow')); echo $date->format('Y-m-d H:i:sP') . "\n";
@askanim Чтобы не засорять базу, вот зачем, очищать таблицу с ненужными данными если срок ссылки истекает.
@_ne_scaju_ строчкой ну и? Ты вот сейчас свой код засоряешь не нужными вещами какими то проверками обработками. Повесил по крону скрипт раз в сутки очищать базу всё баста, работает. база чиста.
@askanim Согласен, но кроном не пользовался не разу. Да и вообще час конечно маловато это будет нагрузкой большой, лучше как и ты говоришь день неделю месяц чистить) Только как пользоваться кроном, надо посмотреть)