保存在数据库中时出现日期格式错误


Date format error while saving in the database

我正在尝试使用从 ajax post 请求收到的日期存储在数据库中。发布请求成功,收到的日期格式正确。控制台中的"网络"选项卡显示发布日期的"设置数据格式":

     start:Mon Mar 07 2016 00:00:00 GMT+0000
     end:Thu Mar 10 2016 00:00:00 GMT+0000

但是,当我使用以下php代码将其保存在数据库中时,它仅在今天的日期保存:

  $json_array["start"]=json_decode($_POST["start"], true);
  $json_array["end"]=json_decode($_POST["end"], true);
  $start = new DateTime($json_array['start']);
  $end = new DateTime($json_array['end']);
  $start =$start->format("Y-m-d H:i:s");
  $end =$end->format("Y-m-d H:i:s");

当我使用它时,它会在 31 年 1969 月 7 日晚上 7 点保存它:

   $json_array["start"]=json_decode($_POST["start"], true);
   $json_array["end"]=json_decode($_POST["end"], true);
   $start =date("Y-m-d H:i:s",$json_array["start"]);
   $end =date("Y-m-d H:i:s",$json_array["end"]);

任何人都可以指导我错的地方,我很感激你的帮助。

我不

相信发布的数据是json,而只是一个简单的字符串。
(你的评论告诉我我是对的)

所以删除json_decode

$json_array["start"]=json_decode($_POST["start"], true);
$json_array["end"]=json_decode($_POST["end"], true);

并将以下行更改为

$start = new DateTime($_POST['start']);
$end = new DateTime($_POST['end']);

你应该没事!

当然,您应该首先检查该 POST 中的内容并检查错误,isset() aso.....在现实生活中的代码