Добрый день! Проблема следующая, я не понимаю как поменять часовой пояс на странице с уведомлениями.
Сейчас приведу пример с чатом, где часовой пояс работает адекватно +4часа. где стоит переменная $date, строка называется time в БД
<?php
ULogin(1);
date_default_timezone_set('Europe/Samara');
$date = date("Y-m-d G:i:s");
if ($_POST['enter'] and $_POST['text']) {
$_POST['text'] = FormChars($_POST['text']);
mysqli_query($CONNECT, "INSERT INTO `chat` VALUES ('', '$_POST[text]', '$_SESSION[USER_LOGIN]', '$date')");
exit(header('location: /chat'));
}
Head('Чат');
?>
Теперь код который не хочет менять часовой пояс. В базе данных он записывается как 0000000.
Сначала я прописал в index.php, то есть вынес дату до начала сессии.(Ставил и перед начало функции)
<?php
date_default_timezone_set('Europe/Samara');
$date = date("Y-m-d G:i:s");
include_once 'setting.php';
session_start();
Затем написал функцию в этом же файле. До $date было NOW(), но с ним -4ч
function SendNotice($p1, $p2) {
global $CONNECT;
$Row = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT `id` FROM `users` WHERE `login` = '$p1'"));
if (!$Row['id']) echo 'Error';
mysqli_query($CONNECT, "INSERT INTO `notice` VALUES ('', '$Row[id]', 0, '$date', '$p2')");
}
Проинклюдил страницу и вот код где происходят сами запросы. Кидаю только его, т.к. нигде date больше не фигурирует
if (!$Module or $Module == 'notice') {
$Param1 = "SELECT `id`, `status`, `date`, `text` FROM `notice` WHERE `uid` = $_SESSION[USER_ID] ORDER BY `id` DESC LIMIT 0, 5";
$Param2 = "SELECT `id`, `status`, `date`, `text` FROM `notice` WHERE `uid` = $_SESSION[USER_ID] ORDER BY `id` DESC LIMIT START, 5";
$Param3 = "SELECT COUNT(`id`) FROM `notice`";
$Param4 = "/notice/?page=";
}
И знаете, что самое интересно? Если в футоре прописать <?=date("Y-m-d G:i:s")?> он показывает правильный часовой пояс!
В БД у date тип datetime