我想使用php在mysql中插入当前日期和时间。我不想在init.php中设置时区,因为这不是强制用户每次或一次设置时区的要求。
我正在这样做:
echo "Today is " . date("d/m/Y") . "<br>";
echo "Time is " . date("g:m a") . "<br>";
$sys_timestamp = strtotime(exec("date"));
echo sys_timestamp;
我已经尝试过NOW(),但是它也不能解决我的问题。 我也尝试过systime(),time()。
我正试图像下面这样修复,但是它弄乱了所有时间。
date_default_timezone_set('Europe/Helsinki');
$updated_date = date("d-m-Y");
echo $updated_date;
$updated_time = date("g:i a");
echo $updated_time;
不是,我不想要以上解决方案。我想在整个网站的服务器上发送通用的日期和时间,并且当用户检查日期和时间时,我希望使用php将日期和时间自动转换为本地时间。将时间从mysql插入时间转换为用户位置的本地时间和日期。
请提出我的错。
答案 0 :(得分:0)
这会将SQL会话的时区同步到当前设置为php的时区。否则,如果您只是更改php,则您的php会话和sql会话将在不同的时区运行。
date_default_timezone_set('Europe/Helsinki');
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$now = new DateTime();
$mins = $now->getOffset() / 60;
$sgn = ($mins < 0 ? -1 : 1);
$mins = abs($mins);
$hrs = floor($mins / 60);
$mins -= $hrs * 60;
$offset = sprintf('%+d:%02d', $hrs*$sgn, $mins);
$sql = "SET time_zone='".$offset."';";
$stmt = $conn->prepare($sql);
$stmt->execute();
$stmt->close();
答案 1 :(得分:0)
更改专栏
see this Sceenshot
当您将数据插入表中时,列也会自动填充当前日期和时间。