简体   繁体   English

php datetime与我保存的数据库数据不匹配

[英]php datetime couldn't match to my saved database data

Here I select a date: 21 Feb, 2019 在这里我选择一个日期: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 result is 1550703600 ( February 21, 2019 5:00:00 AM ) But in my database it saved by 1550685600 ( February 21, 2019 12:00:00 AM ) Two value is different. echo结果是1550703600February 21, 2019 5:00:00 AM ),但是在我的数据库中它被1550685600February 21, 2019 12:00:00 AM )保存了两个值是不同的。

I want to get 1550685600 the database DateTime value. 我想获取1550685600数据库的DateTime值。 But it couldn't match. 但它无法匹配。

I just use $datetime->setTime(-5, 0, 0); 我只是使用$datetime->setTime(-5, 0, 0); to fix this problem. 解决此问题。

Verify the server timezone and the mysql timezone if is on a different server. 验证服务器时区和mysql时区(如果在其他服务器上)。

In all my php I set my timezone based on my location defined instead of the one of the server. 在我所有的php中,我根据定义的位置而不是服务器之一来设置时区。 This will eliminate the confusion If host my server on another timezone. 如果将我的服务器托管在另一个时区,这将消除混乱。 And also can be expanded/upgrade to accept the user timezone if needed. 如果需要,还可以扩展/升级以接受用户时区。

<?php

date_default_timezone_set('America/New_York');

?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM