Php mysql按新时区中的where类选择CURDATE()

Php mysql按新时区中的where类选择CURDATE(),php,mysql,timezone,Php,Mysql,Timezone,我更新了下表: <?php $date = new DateTime(); $date->setTimezone(new DateTimeZone('Asia/Kolkata')); $fdate = $date->format('Y-m-d H:i:s'); $sql="update mytable set logged_on='$fdate' where id='$Id'"; ?> 这正在工作 <?php $date = ne

我更新了下表:

<?php
   $date = new DateTime();
   $date->setTimezone(new DateTimeZone('Asia/Kolkata'));
   $fdate = $date->format('Y-m-d H:i:s');
   $sql="update mytable set logged_on='$fdate' where id='$Id'";
  ?>
这正在工作

<?php
   $date = new DateTime();
   $date->setTimezone(new DateTimeZone('Asia/Kolkata'));
   $fdate = $date->format('Y-m-d H:i:s');
   $sql="select * from mytable where DATE(logged_on) = Date($fdate)" 
?>

但我认为更好的答案是

<?php
      $con=mysqli_connect("localhost","my_user","my_password","my_db");
      $con->query("SET GLOBAL time_zone = 'Asia/Calcutta'");
      $con->query("SET time_zone = '+05:30'");
      $con->query("SET @@session.time_zone = '+05:30'");
      $sql="select * from mytable where DATE(logged_on) = CURDATE()";
?>
使用
sysdate()
一次
<?php
      $con=mysqli_connect("localhost","my_user","my_password","my_db");
      $con->query("SET GLOBAL time_zone = 'Asia/Calcutta'");
      $con->query("SET time_zone = '+05:30'");
      $con->query("SET @@session.time_zone = '+05:30'");
      $sql="select * from mytable where DATE(logged_on) = CURDATE()";
?>