将字符串转换为日期格式,以便将其存储在数据库中

时间:2014-06-13 23:17:30

标签: php

我的应用程序的用户以此格式输入日期

12.06.2014.

如何将其转换为有效的DATETIME并添加时间,以便我可以存储在数据库中。

到目前为止,我尝试这样做:

preg_replace('/./','-',$input['date']) . ' ' . date('H:i:s');

但是我收到了错误。

那么,如何转换14.06.2014。到14-06-2014 18:22:20以便存储在数据库中

3 个答案:

答案 0 :(得分:1)

$date = date('Y-m-d H:i:s', strtotime($input['date']));

在插入查询中使用该$ date变量。

答案 1 :(得分:1)

使用listexplode。但是时间从何而来?我只是假设它是系统中的当前时间。

$date = "12.06.2014";
list($d,$m,$y) = explode(".",$date);

$currentTime = date("H:i:s");
echo $d ."-".$m."-".$y. " " . $currentTime;

答案 2 :(得分:1)

我会使用strtotime()date() - 但您的问题还有其他一些令人困惑的问题。

首先,DATETIME的正确格式不是14-06-2014 18:22:20,而是2014-06-14 18:22:20。第二,18:22:20来自哪里?

所以这里有一些应该有助于解决问题的事情。要从您指定的字符串中获取DATETIME,您可以执行以下操作:

$input_date = '12.06.2014.';
$datetime = date('Y-m-d H:i:s', strtotime($str));

这很简单 - strtotime非常好,并且会弄清楚你的意思,而date()会按照它的第一个参数 - see demo中的指定来格式化它。

如果由于某种原因你想要你提到的格式 - 14-06-2014 18:22:20 - date()也会这样做:

$datetime = date('d-m-Y H:i:s', strtotime($input_date));

但假设您需要mysql DATETIME,那么您需要Y-m-d格式。

现在,接下来的问题是你在哪里得到18:22:20?如果你总是想要那个确切的时间,你可以这样做:

$datetime = date('Y-m-d 18:22:20', strtotime($input_date));

但我真的怀疑这是你想要的。相反,也许您想要附加到输入日期的当前时间。在这种情况下,你可以这样做:

$datetime = date('Y-m-d H:i:s', strtotime($input_date . date('H:i:s')));

See demo