php 日期时间与我保存的数据库数据不匹配

php datetime couldn't match to my saved database data

这里我select一个日期:2019年2月21日

$ri_arrival_date = $_POST["ri_arrival_date"];
$arvl_date = strtotime($ri_arrival_date);
$arvl_date = date('d M,Y',$arvl_date);
$check_in_date = $ri_arrival_date;
$datetime = new DateTime($arvl_date);
$datetime->setTime(0, 0, 0);
$arvl_date = $datetime->getTimestamp();
echo $arvl_date;

echo 结果是 1550703600 (February 21, 2019 5:00:00 AM) 但在我的数据库中它被保存 1550685600 (February 21, 2019 12:00:00 AM) 两个值是不同的。

我想获取 1550685600 数据库日期时间值。但它无法匹配。

我只是用 $datetime->setTime(-5, 0, 0); 来解决这个问题。

验证服务器时区和 mysql 时区(如果在不同的服务器上)。

在我所有的 php 中,我根据我定义的位置而不是服务器之一来设置时区。如果将我的服务器托管在另一个时区,这将消除混乱。如果需要,也可以 expanded/upgrade 接受用户时区。

<?php

date_default_timezone_set('America/New_York');

?>