php - 即使在 php 中设置时区后,服务器中的时间戳也会给出错误的时间
问题描述
我有一个网站,可以在用户填写表格后向表格添加值。我的服务器在印度以外,所以当我输入当前时间戳时,它没有给我正确的印度时间,所以为了修复它,我在我的 php 文件中添加了印度时区。列默认值仍然是“Currenttimestamp”完整的代码如下:
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
if (strlen($_SESSION['cvmsaid']==0)) {
header('location:logout.php');
} else{
if(isset($_POST['submit']))
{
$cvmsaid=$_SESSION['cvmsaid'];
$fullname=$_POST['fullname'];
$mobnumber=$_POST['mobilenumber'];
$email=$_POST['email'];
$add=$_POST['address'];
$whomtomeet=$_POST['whomtomeet'];
$department=$_POST['department'];
$reasontomeet=$_POST['reasontomeet'];
$query=mysqli_query($con,"set session time_zone='Asia/Kolkata'");
$query=mysqli_query($con, "insert into tblvisitor(FullName,Email,MobileNumber,Address,WhomtoMeet,Deptartment,ReasontoMeet) value('$fullname','$email','$mobnumber','$add','$whomtomeet','$department','$reasontomeet')");
if ($query) {
$msg="Visitors Detail has been added.";
}
else
{
$msg="Something Went Wrong. Please try again";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body class="animsition">
<div class="page-wrapper">
<!-- HEADER MOBILE-->
<?php include_once('includes/sidebar.php');?>
<div class="page-container">
<!-- HEADER DESKTOP-->
<?php include_once('includes/header.php');?>
<!-- HEADER DESKTOP-->
<!-- MAIN CONTENT-->
<div class="main-content">
<div class="section__content section__content--p30">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-header">
<strong>Add</strong> New Visitor
</div>
<div class="card-body card-block">
<form action="" method="post" enctype="multipart/form-data" class="form-horizontal">
<p style="font-size:16px; color:red" align="center">
<?php if($msg){
echo $msg;
} ?> </p>
<div class="row form-group">
<div class="col col-md-3">
<label for="text-input" class=" form-control-label">Full Name</label>
</div>
<div class="col-12 col-md-9">
<input type="text" id="fullname" name="fullname" placeholder="Full Name" class="form-control" required="">
</div>
</div>
<div class="row form-group">
<div class="col col-md-3">
<label for="email-input" class=" form-control-label">Email Input</label>
</div>
<div class="col-12 col-md-9">
<input type="email" id="email" name="email" placeholder="Enter Email" class="form-control" required="">
</div>
</div>
<div class="row form-group">
<div class="col col-md-3">
<label for="password-input" class=" form-control-label">Phone Number</label>
</div>
<div class="col-12 col-md-9">
<input type="text" id="mobilenumber" name="mobilenumber" placeholder="Mobile Number" class="form-control" maxlength="10" required="">
</div>
</div>
<div class="row form-group">
<div class="col col-md-3">
<label for="textarea-input" class=" form-control-label">Address</label>
</div>
<div class="col-12 col-md-9">
<textarea name="address" id="address" rows="9" placeholder="Enter Visitor Address..." class="form-control" required=""></textarea>
</div>
</div>
<div class="row form-group">
<div class="col col-md-3">
<label for="password-input" class=" form-control-label">Whom to Meet</label>
</div>
<div class="col-12 col-md-9">
<input type="text" id="whomtomeet" name="whomtomeet" placeholder="Whom to Meet" class="form-control" required="">
</div>
</div>
<div class="row form-group">
<div class="col col-md-3">
<label for="password-input" class=" form-control-label">Company</label>
</div>
<div class="col-12 col-md-9">
<input type="text" id="department" name="department" placeholder="Company Name" class="form-control" required="">
</div>
</div>
<div class="row form-group">
<div class="col col-md-3">
<label for="password-input" class=" form-control-label">Reason To Meet</label>
</div>
<div class="col-12 col-md-9">
<input type="text" id="reasontomeet" name="reasontomeet" placeholder="Reason To Meet" class="form-control" required="">
</div>
</div>
<div class="card-footer">
<p style="text-align: center;"><button type="submit" name="submit" id="submit" class="btn btn-primary btn-sm">Submit
</button></p>
</div>
</form>
</div>
</div>
</div>
</div>
<?php include_once('includes/footer.php');?>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<!-- end document-->
<?php } ?>
仍然没有得到印度时间戳,谁能告诉我如何修复它。提前致谢
解决方案
如果该列是 TIMESTAMP,那么$con
在检索该列之前,您需要在连接上做的所有事情就是执行以下查询:
set session time_zone='Asia/Kolkata'
这适用于您使用的任何语言。就时区转换而言,您不应该在 PHP 中对返回的时间戳进行任何操作;这些将由 MySql 为您完成。
顺便说一句,您应该使用准备好的语句。当您当前正在执行查询时,您可能会面临 SQL 注入攻击。
推荐阅读
- postgresql - 在 Postgres 中手动插入 UUID 值的语法
- c++ - 以不可预测的顺序从字符串生成相同的哈希 C++
- bluetooth - BLUETOOTH - Linux:使用 bluetoothctl 更改外观广告失败
- excel - 需要excel公式来编译没有特定标识符的数据
- c# - 如何检测哪个scrollviewer(父或子)开始滚动?
- java - 对象不添加到另一个对象数组列表
- .net-core - SonarQube:无法导入测试覆盖率
- android - Intune 公司门户应用无法为企业托管的 Android 设备启动
- php - Linux 中的文件夹权限
- java - 如何通过 iCal4j 连接到 CalDav 日历?