Php 无法从表单中保存确切的时间戳

Php 无法从表单中保存确切的时间戳,php,mysql,datetime,timestamp,Php,Mysql,Datetime,Timestamp,我正在尝试将包含date\u start和date\u end时间戳的事件保存到我的表中。从另一个PHP页面,我得到四个输入:两个日期输入和两个时间输入。我试图插入这些值,但在插入时不断得到以下值: 0000-00-00:00:00 这是我的剧本: $rep=$bdd->query('SELECT*FROM association,其中nom=“.”.$”会话['usertag'].'”); $data=$rep->fetch(); $处女秀=“\”$\u发布['date\u start']。$

我正在尝试将包含
date\u start
date\u end
时间戳的事件保存到我的表中。从另一个PHP页面,我得到四个输入:两个日期输入和两个时间输入。我试图插入这些值,但在插入时不断得到以下值:

0000-00-00:00:00

这是我的剧本:

$rep=$bdd->query('SELECT*FROM association,其中nom=“.”.$”会话['usertag'].'”);
$data=$rep->fetch();
$处女秀=“\”$\u发布['date\u start']。$\u发布['time\u start']。“:00\”;
$fin=“\'”$\u POST['date\u end']。$\u POST['time\u end']。“:00\'”;
$处女秀=日期('Y-m-d H:i:s');
$fin=日期('Y-m-d H:i:s');
$timestamp_首次登场=STROTIME($SUNDEST);
$timestamp\u fin=strottime($fin);
$req=$bdd->query('INSERT into evenement values(NULL,'.$\u POST['name'.','.$\u POST['content'.',\'.'.$timestamp\u fin.''.'.$data['id'.')、'.$data['id'.');
PHP输出一个Unix时间戳。如果数据库列类型为,则Unix时间戳的格式不正确。您可以只插入格式化的字符串

例如:

strtotime(date('Y-m-d H:i:s'))
1562117846

2019-07-02 21:36:40

对于MySQL:

MySQL识别日期时间和时间戳值。。。[a] 是“YYYY-MM-DD hh:MM:ss”或“YY-MM-DD hh:MM:ss”格式的字符串。这里也允许使用“宽松”语法:任何标点符号都可以用作日期部分或时间部分之间的分隔符。例如,“2012-12-31 11:30:45”、“2012^12^31 11+30+45”、“2012/12/31 11*30*45”和2012@12@31 11^30^45'是等效的


但是,您似乎正在使用当前时间戳,而您可能希望使用表单中发布的值。PHP使用“如果没有给出时间戳,则为当前时间”

如果您想使用发布的值,您确实可以使用
strotime()
将其转换为Unix时间戳,然后使用
date()
对其进行格式化

$date = '2019-07-02';
$time = '15:28';

date('Y-m-d H:i:s',strtotime($date.' '.$time));
2019-07-02 15:28:00

或者,我建议使用PHP的:

2019-07-02 15:28:00


非常感谢你这个答案向我解释了很多
$date = '2019-07-02';
$time = '15:28';

date('Y-m-d H:i:s',strtotime($date.' '.$time));
$date = '2019-07-02';
$time = '15:28';

$datetime = new Datetime($date.' '.$time);
echo $datetime->format('Y-m-d H:i:s');