我的应用程序的用户以此格式输入日期
12.06.2014.
如何将其转换为有效的DATETIME并添加时间,以便我可以存储在数据库中。
到目前为止,我尝试这样做:
preg_replace('/./','-',$input['date']) . ' ' . date('H:i:s');
但是我收到了错误。
那么,如何转换14.06.2014。到14-06-2014 18:22:20以便存储在数据库中
答案 0 :(得分:1)
$date = date('Y-m-d H:i:s', strtotime($input['date']));
在插入查询中使用该$ date变量。
答案 1 :(得分:1)
使用list
和explode
。但是时间从何而来?我只是假设它是系统中的当前时间。
$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')));